画像ファイルに追加情報を追加できるようにしたいJavaプログラムを作成しています(後で同じプログラムで読み取ることができるプレーンテキストだけです)。最初の行として追加することを検討していました。
画像ファイルを破損することなく、このような情報を追加する方法はありますか? どういうわけかそのテキストを「コメント」して、画像バイナリの一部として読み取られないようにすることはできますか (メモ帳で画像を開くとそこに表示されるように)。
これは Java としてタグ付けされていますが、通常、画像ファイルのEXIF データを変更できます。
ほとんどの画像ファイル形式では、任意のメタデータを使用できます。PNG 画像には、「チャンク」にピクセル データ、カラー プロファイル、著作権などが含まれます。詳細については、 http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.htmlを参照してください。おそらく、iTXt または tEXt チャンクが必要です。
JPEG ではメタデータも使用できます。JFIF と EXIF を読んでください。この回答を参照してください: https://stackoverflow.com/a/10699613/10468
Java 固有の回答については、Java、できれば PNG でイメージ メタデータを書き込むという質問を参照してください。
その質問はJavaではなくPHPについて尋ねますが、 PHPでJPEG解像度を見つけるにも役立つ情報があるかもしれません。
最近では TIFF はあまり見られなくなりましたが、この形式を使用すると、さまざまな追加データやユーザー定義のタグを保存したいデータに使用できます。
テキスト エディターで開いたり、コマンド ラインで印刷したりできる画像ファイル形式は、私が知っているものではありません。これらはテキスト メタデータとして表示され、ピクセルから意味不明なものは表示されません。ただし、そのようなファイル形式を定義することは可能です。ファイルがテキストで始まり、EOT (ascii 03) (iirc) があり、その後バイナリで続く場合、ほとんどのテキスト コマンド ライン ツールとテキスト エディターはテキストをうまく処理します。 EOTで停止します。すべてのプラットフォームで機能するかどうかはわかりません。
テキストを非表示にするためにImageStagenographyを使用できます。これを行うのに役立ついくつかのリンクがあります:画像のステガノグラフィ