説明
指定したサイズの四角形を2つ描画しPNG形式で保存するには必要なパッケージを読み込ませます。四角形をNewRGBA()メソッドとRect()メソッドを使って生成します。四角形を描画するにはDraw()メソッドを使って行います。最初のパラメーターに描画するイメージ先、2番目のパラメーターには描画サイズ、3番目のパラメーターには描画する色を指定します。描画色は&image.Uniform{color.RGBA{0, 255, 0, 255}}のように指定します。color.RGBA()で赤、緑、青、αの順番に指定します。不透明度を示すαは0が完全な透明、255が完全な不透明になります。4番目のパラメーターには描画位置を指定します(多分。ちょっとわからない)。描画位置はimage.Point{0, 0}として指定します。また、(0, 0)に描画するのであればimage.ZPと指定することもできます。5番目のパラメーターには描画モードを指定します。draw.Srcなら、指定したピクセル値をそのまま描画します。
四角形を2つ描画する場合はDraw()メソッドを2回記述します。色やサイズを変える場合はパラメーターを調整します。
package main
import (
"fmt"
"image"
"os"
"image/png"
"image/draw"
"image/color"
)
func main() {
// 320×240ピクセルサイズの四角形を生成
m := image.NewRGBA(image.Rect(0, 0, 320, 240))
// (0, 0)から青色で320×240ピクセルサイズの四角形を描画
draw.Draw(m, m.Bounds(), &image.Uniform{color.RGBA{0, 0, 255, 255}}, image.Point{0, 0}, draw.Src)
// (40, 20)から赤色で320×240ピクセルサイズの四角形を描画
draw.Draw(m, image.Rect(20, 40, 180, 70), &image.Uniform{color.RGBA{255, 0, 0, 255}}, image.Point{0, 0}, draw.Src)
// 保存するファイル名
savefile, err := os.Create("/images/redblue.png")
if err != nil {
fmt.Println("保存するためのファイルが作成できませんでした。")
os.Exit(1)
}
defer savefile.Close()
// PNG形式で保存する
png.Encode(savefile, m)
}