PNG画像の横幅と縦幅を求める

説明

PNG画像の横幅と縦幅を求めるには、まずimageパッケージを読む込むようにします。その際、_ "image/png"としてPNG形式を処理できるように指定します。サンプルでは特定のディレクトリにあるPNG画像を読み込みます。画像ファイルを開くことができたらDecode()を使ってデコード(ピクセル操作ができるように復元/変換)します。Decord()の最初の戻り値に画像の情報が入っています。この画像情報のBounds()メソッドを実行すると戻り値として矩形情報が返されます。画像の幅は、さらに最大幅であるMax.Xから最小値であるMin.Xを引いたものになります。(Y座標も同様です) 画像の幅はピクセル数で示されます。

サンプル [サンプルをダウンロード]

package main
import (
"fmt"
"image"
"os"
_ "image/png"
)
func main() {
file, err := os.Open("/images/test.png")
if err != nil {
fmt.Println("ファイルが開けませんでした。")
os.Exit(1)
}
defer file.Close()
m, _, err := image.Decode(file)
if err != nil {
fmt.Println("画像を解析できませんでした。")
os.Exit(1)
}
bounds := m.Bounds() // 画像のサイズに関する情報を取得
imageWidth := bounds.Max.X - bounds.Min.X // 横幅を求める
imageHeight := bounds.Max.Y - bounds.Min.Y // 縦幅を求める
fmt.Printf("横幅 = %d\n縦幅 = %d\n", imageWidth, imageHeight)
}

実行結果

Go言語を使ったプログラムの実行結果