Pillowを使用して画像を透過して一部だけ重ねる
はじめに
業務で画像を一部だけ重ねる必要があり、方法を調べたのでメモとして残しておきます。
最初はopencvを使用して、重ねる予定でしたが、調べているうちにPillowを使用したほうが楽そうだったのでそちらを使用する方法に切り替えました。
画像を透過する
まずは、画像を透過する。
これは検索すれば結構出てくるのですぐにできると思います。
実装は以下。
from PIL import Image
im1 = Image.open("test1.png")
im2 = Image.open("test2.png")
im1.putalpha(128)
im2.putalpha(128)
やっていることは、
-
Image.open("ファイル名")
で画像を読み込む -
putalpha(alpha)
で透過している
画像を重ねる
次に透過した画像を重ねる。
重ねるときに1枚もとになる画像を作成して、それに透過した画像を張り付ける感じで重ねます。
実装は以下。
bg = Image.new("RGBA", (1000, 1000), (255, 255, 255, 0))
bg.paste(im1, (200, 200), im1)
bg.paste(im2, (400, 400), im2)
bg.save("join.png")
やっていることは、
1. Image.new()
で画像を重ねるためのべーずになる画像を作成します。
2. paste()
でベースの画像に透過した画像を重ねます。
3. save()
で画像を保存します。
いい感じに透過された画像が重ねっているのが分かりますね!
Author And Source
この問題について(Pillowを使用して画像を透過して一部だけ重ねる), 我々は、より多くの情報をここで見つけました https://qiita.com/t07y04/items/6aab7e8f305fcc8d8829著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .