go言語で画像を作成(編集)する【imagemagick】
ImageMagick
画像編集するライブラリで超優秀なやつ
文字列の設定なども可能
フォントは微妙
インストール(Mac)
brew install ruby brew install ImageMagick brew install pkg-config go get gopkg.in/gographics/imagick.v3/imagick
※rubyは2.3以上
※imagickはimagemagickのインストールバージョンで切り替え
実装
sample2.go
package main import ( "gopkg.in/gographics/imagick.v3/imagick" // "fmt" ) func main() { var err error imagick.Initialize() defer imagick.Terminate() mw := imagick.NewMagickWand() dw := imagick.NewDrawingWand() pw := imagick.NewPixelWand() defer mw.Destroy() // 短形を作成 pw.SetColor("none") mw.NewImage(400, 300, pw) // フォント設定 pw.SetColor("RGB(255, 0, 125)") dw.SetFillColor(pw) dw.SetFontSize(60) pw.SetColor("RGB(255, 0, 125)") dw.SetStrokeColor(pw) // テキスト設定 dw.Annotation(25, 65, "Sample") // 短形の描画(塗りつぶしなし) pw.SetColor("RGB(100, 100, 100)") dw.SetStrokeColor(pw) dw.SetStrokeWidth(4) pw.SetColor("none") dw.SetFillColor(pw) dw.Rectangle(50, 150, 120, 250) dw.PushDrawingWand() // 描画 mw.DrawImage(dw) // 合成用 pw2 := imagick.NewPixelWand() mw2 := imagick.NewMagickWand() defer mw2.Destroy() pw2.SetColor("blue") mw2.NewImage(120, 100, pw2) // 指定の場所へ合成 err = mw.CompositeImage(mw2, mw2.GetImageCompose(), true, 100, 100) if err != nil { panic(err) } // 出力フォーマット err = mw.SetFormat("png") if err != nil { panic(err) } // ファイルへ出力 mw.WriteImage("text_shadow.png") }
↓
所感
文字列を挿入できました(^^)
まあ、あまり画像を使うことはないですがとりあえず覚えておこうかと思います。