GOで画像処理

透過色にするサンプル。

元画像はプロデュースノートの背景がスクリーンのやつで、左上のピクセルと同じカラーのピクセルを全部透過色にする、みたいなことをしています。
AndroidタブにいれたTermuxで確認しました。

package main

import ("os"
	   "image"
	   "image/png"
	   "image/color"
	   "log"
	   )

func main(){
	strSrcName := "mayu.png"
	strDstName := "mayu2.png"

	fileSrc, err := os.Open(strSrcName)
	if err != nil{ log.Fatal(err) }
	defer fileSrc.Close()

	img,_,err := image.Decode(fileSrc)
	bounds := img.Bounds()

	imgDst := image.NewRGBA(
		   image.Rect(0,0,bounds.Max.X,bounds.Max.Y))

	colorTransparent := img.At(0,0)

	for ii := 0; ii < bounds.Max.Y; ii++{
		for jj := 0; jj < bounds.Max.X; jj++{
			col := img.At(jj, ii)
			if col == colorTransparent{
				imgDst.Set(jj,ii,color.RGBA{0,0,0,0})
			}else{
				imgDst.Set(jj,ii,col)
			}
		}
	}

	fileDst,err := os.Create(strDstName)
	if err != nil{ log.Fatal(err) }
	defer fileDst.Close()
	err = png.Encode(fileDst, imgDst)
}