• 締切済み

アルファ値を持つ画素同士の合成

アルファ(透明値)をもつピクセル同士を重ねる方法についての質問です。 たとえば 前景RGBA=(255,0,255,0) 背景RGBA=(255,255,255,255) のように背景が完全不透明であるなら FR = (FR * FA + BR * (255 - FA)) / 255 (FRは前景のR値、BRは背景のR値、FAは前景のアルファ値) のように単純な演算で合成後の画素値を算出できますが、 前景RGBA=(255,0,255,64) 背景RGBA=(255,255,255,128) のように両方ともアルファ値を持つ画素同士であれば、どういったアルゴリズムで合成すればよいでしょうか。 ちなみにイメージする結果は、Photoshopなどのペイントツールで、完全透明レイヤーに半透明のブラシを色違いで重ねたような感じです。

みんなの回答

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.1

>両方ともアルファ値を持つ画素同士であれば、どういったアルゴリズムで合成すればよいでしょうか。 アルゴリズム(計算式)は合成処理の用途などに応じて自由に決めていいものだと思います(つまりコレを使うべき、というものはないと思います)。例えばPhotoshopでも合成処理は何種類か用意されていてそれを選択できるようになっています。 1番単純なものでしたら r=(r1*a + r2*(255-a)) / (2*255) ような感じでいいのではないでしょうか?

Tank2005
質問者

補足

お教えいただいた演算方法だと背景部分の透過情報が無視されるため、いびつな画像になるようです。 参考: http://blogimg.goo.ne.jp/user_image/72/74/ddd54d03438150fd100f1409f9d23956.png 両方のアルファ値を考慮した計算方法はありますでしょうか イメージしている演算例(参考): http://blogimg.goo.ne.jp/user_image/67/78/27f9e4233e6604fdb0659f51133e53a9.png

関連するQ&A