2017-03-19 15 views
0

私はJavaでいくつかの画像処理ツールを使って遊んでいて、独自の画像フォーマット(独自のファイル拡張子とヘッダー付き)を作成する方法を知りました。新しい画像形式を作成するには?

は私がこれに近づくと、ファイルのヘッダーを変更する方法を

.abcde拡張子を持つ新しいファイルに2枚のJPEG画像を保存しようとしています言いますか? 私はいくつかの調査を行い、これを見つけましたが、それはまったくの例を持っていませんでした。 https://gamedevelopment.tutsplus.com/tutorials/create-custom-binary-file-formats-for-your-games-data--gamedev-206

アドバイス/参考資料/例があれば幸いです。

答えて

1

大丈夫です。バイナリファイルとは何ですか?これは8ビットの値(0-255の範囲)を含む何らかのタイプの「ボックス」です。実際にイメージは何ですか?同じ。しかし、画像のデータは特別に保存されます。たとえば、ビットマップ(* .BMPファイル)を見ると、RGB値が含まれていることがわかります(実際には色の濃さに依存しますが、現在は24ビットの色について話しています)。それで、それはどういう意味ですか?これは、赤の緑と青の値に対して、各ピクセルが3バイト(24ビット)で格納されることを意味します。 EG:0x00 0x00 0x00 - これは16進表現の黒いピクセル 0xFF 0xFF 0xFF - 白です。 しかし、このような方法で画像データを格納することは非常に非効率的である。たとえば、1024x1024の画像は1024 * 1024 * 3 = 3145728バイトになります。または3メガバイト。また、アルファチャンネルは1バイトで保存されていません。 ここでデータ圧縮が行われると、損失または損失が発生する可能性があります。たとえば、16進エディタでPNGファイルを開くと、DEFLATE圧縮データ(LZ77 +ハフマンコーディング)が表示されます。無損失です。 GIFファイルはLZWで圧縮されていますが、これは今日では非常に非効率的です。 FLIFやBPGなど、PNGやJPEGよりも優れた画像を圧縮する、本当に素晴らしい画像フォーマットがたくさんあります。 独自のファイル形式を作成したい場合は、BMPやPCXのような生のピクセルコンテナファイル、または圧縮されたピクセルファイルを作成することができます(ここでは、カスタムデータ圧縮アルゴリズムを記述する必要があります。この目的のために)。

関連する問題