Photoshop などのプロの画像編集プログラムの「色から透明度」効果をご存知かもしれません。この効果はどのように行われますか?Python を使用してプログラムで画像に透明度を追加したい (生成された画像で確認できるため、PIL をテストするため)。この効果はいくつかのフラクタルに使用される予定なので、現在のコードは次のとおりです。
i = "i.png"
o = "o.png"
key = (0, 0, 0, 255)
from PIL import Image as I
_i = I.open(i)
_ii = _i.load()
_o = I.new("RGBA", _i.size)
_oo = _o.load()
for x in range(0, _i.size[0]):
for y in range(0, _i.size[1]):
col = list(_ii[x, y])
for i in range(0, 4):
col[i] = abs(col[i] - key[i])
_oo[x, y] = tuple(col)
_o.save(o)
両方の色を差し引くことを考えましたが、最終的には黒い画像になります(すべてのアルファが失われます)。もう 1 つの考えは、元の色を 2 倍にして、2 つの色を逆に混合するなど、キーが低いかどうかを確認することでした。
それで、何かアイデアはありますか?
編集
この効果は、GIMP の「色から透明度へ」機能を使用して行われました。#FFF を透明に選択すると、最初はピクセルの色を無視せずに、GIMP が何らかの方法で白を透明にしました。これは、私が実際にやりたいことです。画像のように、画像の色を透明にします。
(2枚目の画像は背景を黒くしたので透明です。元の画像は1枚目と同じで、背景が白、周囲が少し緑、中心が黒です)