📌
PNG画像でチャンクタイプIHDRから画像の幅と高さを取得する
これは何?
PNG画像でチャンクタイプIHDRから画像の幅と高さを取得する方法を記載します。
実現方法
PNG画像の仕様として画像の幅は17から20バイト、画像の高さは21から24バイトに保持されています。
実装
下記の画像を対象にImageMagickから画像情報を取得します。次にプログラムで取得しようと思います。
identify
コマンドを利用して画像の幅と高さを取得します。
sb_intui@saito:~/src/amazarashi/20250504$ identify kurage.png
kurage.png PNG 788x778 788x778+0+0 8-bit sRGB 310412B 0.000u 0:00.000
画像の幅が788px、画像の高さが778pxであることが分かりました。
次にプログラムとして取得してみます。
png_ihdr = read("kurage.png")
width = Int(png_ihdr[17]) << 24 + Int(png_ihdr[18]) << 16 + Int(png_ihdr[19]) << 8 + Int(png_ihdr[20])
height = Int(png_ihdr[21]) << 24 + Int(png_ihdr[22]) << 16 + Int(png_ihdr[23]) << 8 + Int(png_ihdr[24])
println(width)
println(height)
感想
普段バイナリファイルに対して、プログラミングをしないので楽しかったです。
Discussion