===
題名の通りなんですが、こういう画像を作るシンプルなツールをGo (golang) で作った話になります。
パッケージ名は text2img としました。(github)
背景
会社の技術ブログに投稿する記事を書いている際、OGPに用いる画像を自動生成できたら良いなーと思い、サッと作ってみました。
特徴
以下のような特徴があります。
- Go製なのでWindowsでもMacでもLinuxでも、環境を選ばずに使える。
- githubでバイナリの配布をしています。
- Goがインストールされている環境ならば
go get
でも。
- フォントサイズは、テキストが画像の幅(デフォルトではOGPの画像に最適とされる1200px)に収まるように自動調整
- 背景色・文字色は良い感じの組み合わせになるように自動選択
- 指定することも可能
使い方
バイナリまたはgo get github.com/Iwark/text2img
でインストールしたら、次のように使うことができます。
$ text2img -fontpath="font.ttf" -output="test.jpg" -text="text2img generates the image from a text"
上記画像では、フリーフォントのM+ FONTSさんのフォントを使用させていただいています。素敵。
Goのコードから使う場合
githubの方にも使い方が書いてありますが、次のように使えます。
package main
import (
"image/jpeg"
"os"
"github.com/Iwark/text2img"
)
func main() {
path := "fonts/font.ttf"
d, err := text2img.NewDrawer(text2img.Params{
FontPath: path,
})
checkError(err)
img, err := d.Draw("text2img generates the image from a text")
checkError(err)
file, err := os.Create("test.jpg")
checkError(err)
defer file.Close()
err = jpeg.Encode(file, img, &jpeg.Options{Quality: 100})
checkError(err)
}
1月にAWS LambdaがGoをサポートしましたし、ブログの記事をアップした際にLambdaでタイトルを画像に変換して、自動的にS3にアップロードされるようにすると良いかなーと考えていたり、いなかったり。
良ければ、使ってみてください。