14
1

はじめに

Elixir の Image モジュールで透過画像(PNG や SVG など)の背景(透明になっている箇所)を塗りつぶします

実装したノートブックはこちら

セットアップ

必要なモジュールをインストールします

Mix.install([
  {:image, "~> 0.52"},
  {:req, "~> 0.5"},
  {:kino, "~> 0.13"}
])
  • Image: 画像処理
  • Req: HTTP クライアント
  • Kino: Livebook の UI/UX

画像の準備

ElixirConf EU のロゴ画像をダウンロードしてきます

original_img =
  "https://www.elixirconf.eu/assets/images/drops.svg"
  |> Req.get!()
  |> Map.get(:body)
  |> Image.from_binary!()

スクリーンショット 2024-07-08 23.12.35.png

背景の塗りつぶし

Image.flatten で背景を塗りつぶします

Image.flatten!(original_img)

スクリーンショット 2024-07-08 23.14.35.png

第2引数のオプションで背景色を指定できます

Image.flatten!(original_img, background_color: :blue)

スクリーンショット 2024-07-08 23.15.55.png

まとめ

以前 Image に関する記事を書いた頃は 0.35 だったのですが、もう 0.52 まで進んでいて驚きました

Image モジュールを使うと、多様な画像処理が簡単に実装できるのでオススメです

14
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
1