2011-11-15 3 views
0

私はPNGファイルのデータを隠すための簡単なステガノグラフィープログラムを作っています。 1バイトのデコード/エンコードは簡単でしたが、PNGファイルのヘッダーも非表示にする必要があります。このヘッダーには、ファイルを抽出するために必要なバイト数を正確に知るためのファイルサイズ(バイト数が多すぎます。また、抽出されたファイルは破損します)が含まれます。整数を1バイトに分割し、FreeBASICで再びマージするには?

整数を1バイトに分割する必要があります(FBの整数は32ビット幅であるため、4つの別々のバイトになります)。次に、これらのバイトはPNG画像の最初の16ピクセルにエンコードされます(私のステガノグラフィアルゴリズムではデコードされたバイト= 4がエンコードされ、データストレージにはRとBの値のみが使用されます)。どうすればいい? TL:DR:整数を4つの個別のバイトに分割し、これらのバイトを再び整数にマージする方法を知っておく必要があります。

答えて

1

FBフォーラムの私の友人、Mysoft created this example how to do that。また、応答性と迅速な答えをstackoverflowのコミュニティに感謝します。

dim as integer x = &hFF88442211, y 
dim as integer b1,b2,b3,b4 

b1 = x and &hFF 
b2 = (x shr 8) and &hFF 
b3 = (x shr 16) and &hFF 
b4 = (x shr 24) and &hFF 

y = b1+(b2 shl 8)+(b3 shl 16)+(b4 shl 24) 

print hex$(x),hex$(y) 
print hex$(b1),hex$(b2),hex$(b3),hex$(b4) 
+2

おそらく答えにコードを含めることをお勧めします。この方法であなたはリンクの腐敗を避けることができます –

+0

私はそれがSOのルールに違反しているかどうかわからなかったので、確かにpastebinへの投稿されたリンク。私が訪れるほとんどのプログラミングサイトは、埋め込みコードではなくペーストビンリンクを好みます。 –

+0

答えスタンドは単独であることが望ましいです。質問と回答にコードを含めることが奨励されています。実際には、サイトのユーザーのGoogleコードprettifyとFreebasicは[サポートされているハイライトのリスト](http://meta.stackexchange.com/questions/981/syntax-highlighting-言語ヒント) –

関連する問題