2012-08-28 3 views
10

画像データの保存方法を低レベルにすることに興味があります。たとえば、Windowsでイメージをプルアップし、イメージ(カメラの使用、日付など)に関する情報を取得できます。画像ファイルにデータを保存する方法

一般的なレベル(png、jpegなどが違うと思います)の画像には、プロパティが定義されているヘッダーセクションと多次元配列を使用して特定のピクセルの色を指定するボディセクションがありますか?

ウェブページに類似したソースを表示できたら、どのようなイメージソースが表示されるのでしょうか?私のコンピュータ上でJPEGを開くと、最初の数行はXMLのように見えます。

+4

http://en.wikipedia.org/wiki/Image_file_formats - ここでは、学習したい特定のフォーマットについてのリンクをたどって、各フォーマットのページの「技術的な詳細」セクションをチェックしてください。 – DGH

+3

イメージはバイナリです。 HEXモードをサポートしているテキストエディタでjpegを開くと、それの* guts *を見ることができますので、http://snag.gy/X1b7B.jpgのようによく話せます。また、ほとんどのカメラがjpegファイルのヘッダーに情報を格納する方法の詳細については、EXIFをチェックしてください。 http://en.wikipedia.org/wiki/Exchangeable_image_file_format –

+0

バイナリと言うと、ピクセルデータはバイナリですが、私は仮定していますが、メタデータは何らかのタイプのキー値ペアに格納されていますか?そして、私はそれがXMLであると仮定しています。したがって、ファイルをASCIIテキストとして解釈しようとすると、そのキーと値のペア(x​​mlなど)が表示されますが、バイナリピクセルデータはぎこちないように見えます。 –

答えて

2

あなたが見ているXMLはExchangeable image file format (or Exif)の一部です。あなたがバイナリエディタでファイルを見る場合は、これらのようなマーカーが表示されます。

すべてのJPEGファイルは、バイナリ値「0xFFD8」から始まるバイナリ 値「0xFFD9」で終わります。 JPEGデータにはいくつかのバイナリ0xFFXXデータがあり、 は「マーカー」と呼ばれ、JPEG 情報データの期間を意味します。 0xFFD8はSOI(Start of image)を意味し、0xFFD9は EOI(End of image)を意味する。

PNGファイルは常にthese eight bytes0x89 0x50 0x4E 0x47 0x0D 0x0A 0x1A 0x0Aで始まります。それは、バイトマーカーを使用してデータのセクションを示すJPEGと同様のメカニズムを持っています。詳細仕様hereをお読みください。

関連する問題