はじめに
Elixir の Image モジュールで透過画像(PNG や SVG など)の背景(透明になっている箇所)を塗りつぶします
実装したノートブックはこちら
セットアップ
必要なモジュールをインストールします
Mix.install([
{:image, "~> 0.52"},
{:req, "~> 0.5"},
{:kino, "~> 0.13"}
])
画像の準備
ElixirConf EU のロゴ画像をダウンロードしてきます
original_img =
"https://www.elixirconf.eu/assets/images/drops.svg"
|> Req.get!()
|> Map.get(:body)
|> Image.from_binary!()
背景の塗りつぶし
Image.flatten
で背景を塗りつぶします
Image.flatten!(original_img)
第2引数のオプションで背景色を指定できます
Image.flatten!(original_img, background_color: :blue)
まとめ
以前 Image に関する記事を書いた頃は 0.35 だったのですが、もう 0.52 まで進んでいて驚きました
Image モジュールを使うと、多様な画像処理が簡単に実装できるのでオススメです