QImage.setText(...)とQImage.text(...)を使用して、pngメタデータを追加および読み取る単純なQtベースのアプリケーションを作成できることを知っています。そのメタデータは、pngmetaと呼ばれるLinuxコマンドで読み取ることができます。
しかし、pngメタデータを読み取るために他にどのような画像ソフトウェアを使用できますか?
一般的なプラットフォーム用の画像プログラムを探しているので、アプリケーションがWindows用かLinux用かを指定してください。
質問を明確にするために、いくつかのテストメタデータが添付されたimgを添付しました。
ありがとうヨハン
リンク:
ImageMagick
を使用:
identify -verbose image.png
ImageMagick
はクロスプラットフォームである必要があります。私はあなたの添付画像を使ってLinuxでそれを試しました:
[...] プロパティ: 著者:ハンス・ミュラー 日付:2010-12-08 09:45 日付:作成: 2010-12-08T13:15:43 + 01:00 日付:変更:2010-12-08T13:15:43 + 01:00 記述:はるか昔の銀河で遠く.... 署名:3b4a54202316a7ae4b4fe0e431d47958181f4bb893493355820d4ba74f9f5ee3 [...]
別のオプションは、Windowsでは TweakPNG です。
画像のHans Müller
名の表示に問題があることがわかります。そのため、Unicodeメタデータでは機能しない可能性があります。
PNGのみのソリューションを探している場合は、pngchunks
を試してください。
$ Sudo apt-get install pngtools
$ pngchunks UiagX.png
Chunk: Data Length 13 (max 2147483647), Type 1380206665 [IHDR]
Critical, public, PNG 1.2 compliant, unsafe to copy
IHDR Width: 800
IHDR Height: 600
IHDR Bitdepth: 8
IHDR Colortype: 2
IHDR Compression: 0
IHDR Filter: 0
IHDR Interlace: 0
IHDR Compression algorithm is Deflate
IHDR Filter method is type zero (None, Sub, Up, Average, Paeth)
IHDR Interlacing is disabled
Chunk CRC: 353637671
Chunk: Data Length 9 (max 2147483647), Type 1935231088 [pHYs]
Ancillary, public, PNG 1.2 compliant, safe to copy
... Unknown chunk type
Chunk CRC: 10132504
Chunk: Data Length 19 (max 2147483647), Type 1951942004 [tEXt]
Ancillary, public, PNG 1.2 compliant, safe to copy
... Unknown chunk type
Chunk CRC: -1325924661
Chunk: Data Length 21 (max 2147483647), Type 1951942004 [tEXt]
Ancillary, public, PNG 1.2 compliant, safe to copy
... Unknown chunk type
Chunk CRC: 134517081
Chunk: Data Length 58 (max 2147483647), Type 1951945850 [zTXt]
Ancillary, public, PNG 1.2 compliant, safe to copy
... Unknown chunk type
Chunk CRC: 1701487776
Chunk: Data Length 572939 (max 2147483647), Type 1413563465 [IDAT]
Critical, public, PNG 1.2 compliant, unsafe to copy
IDAT contains image data
Chunk CRC: 1174233759
Chunk: Data Length 0 (max 2147483647), Type 1145980233 [IEND]
Critical, public, PNG 1.2 compliant, unsafe to copy
IEND contains no data
Chunk CRC: -1371381630
pnginfo
の出力は、使用方法に対して冗長ではない場合があります。
$ pnginfo UiagX.png
UiagX.png...
Image Width: 800 Image Length: 600
Bitdepth (Bits/Sample): 8
Channels (Samples/Pixel): 3
Pixel depth (Pixel Depth): 24
Colour Type (Photometric Interpretation): RGB
Image filter: Single row per byte filter
Interlacing: No interlacing
Compression Scheme: Deflate method 8, 32k window
Resolution: 2835, 2835 (pixels per meter)
FillOrder: msb-to-lsb
Byte Order: Network (Big Endian)
Number of text strings: 3 of 9
Author (tEXt uncompressed): Hans Müller
Date (tEXt uncompressed): 2010-12-08 09:45
Desc (tEXt uncompressed): A long time ago in a galaxy far far away....
上記のExiftool
が表示されません。png
...だけでなく、多くの画像フォーマットを実行します.
これは「プラットフォームに依存しないPerlモジュール」ですが、実行可能ファイルでもあります(いくつかのプラットフォーム/ OSで利用可能)。
言及したように 別の質問で 、 pngcheck を使用できます:
pngcheck -c -v -t foobar.png
以下は、PNGチャンクを表示するための関連オプションです。
-7 print contents of tEXt chunks, escape chars >=128 (for 7-bit terminals)
-c colorize output (for ANSI terminals)
-p print contents of PLTE, tRNS, hIST, sPLT and PPLT (can be used with -q)
-t print contents of tEXt chunks (can be used with -q)
-v test verbosely (print most chunk data)
コメントの追加の両方にimagemagickを使用する:
mogrify -comment "your comment" <IMAGE_NAME>
次にそれを読み返します:
identify -verbose <IMAGE_NAME>
または、コメントのみを表示したい場合:
identify -verbose <IMAGE_NAME> | grep "comment:"
メタデータを適切に埋め込むことをお勧めします。
誰かが Magick.NET を使用している場合、C#でこれらの属性を次のように取得できます。
foreach(string key in image.AttributeNames)
{
string value = image.GetAttribute(key);
}