RGBAイメージ(フォアグラウンドイメージ)、RGBイメージ(バックグラウンドイメージ)のアルファブレンド操作を実行しようとしています。しかし、そうしている間、私は間違ったアルファブレンディング操作を行っているか、または間違っていると思う。たとえば、私のRGB画像のピクセルは(127,127,127)の灰色がかった色です。ピクセルのRGBAイメージのピクセルは(0、0、255)になります。ブレンド操作を実行すると、最終的な色は(127、0、255)になります。しかし、私は、これが追加のブレンドであり、私がやっている操作とは異なると思っていました。私の値が設定されている方法についてはRGBAピクセルとRGBピクセルを手動でアルファブレンディングする
は、私は希望、アルファなしでピクセルの場合、この
float incAlpha = (currentPixelColor[3]/255.0f);
float red = ((float)incPixelColor[0]/255.0f * incAlpha) + ((float)currentPixelColor[0]/255.0f);
float green = ((float)incPixelColor[1]/255.0f * incAlpha) + ((float)currentPixelColor[1]/255.0f);
float blue = ((float)incPixelColor[2]/255.0f * incAlpha) + ((float)currentPixelColor[2]/255.0f);
currentPixelColor[0] = min(red * 255, 255.0f);
currentPixelColor[1] = min(green * 255, 255.0f);
currentPixelColor[2] = min(blue * 255, 255.0f);
を見て、私の計算が設定されている方法については、この
incPixelColor[0] = 0; (red)
incPixelColor[1] = 0; (green)
incPixelColor[2] = 255; (blue)
incPixelColor[3] = 255; (alpha)
currentPixelColor[0] = 127; (red)
currentPixelColor[1] = 127; (green)
currentPixelColor[2] = 127; (blue)
を見てみましょう値が(0、0、255)であるのと同様に、アルファのある画像ではブレンドしたいと思います。上記の操作の最後では、(127,127,255)になります。すべてのピクセルにアルファがあるかどうかを調べる必要がありますか?その場合は、ブレンドするか、これを行う別の方法がありますか?
を逃しているようです。 y =(x0 * w)+(x1 *(1-w)) –
これは、前後に255のスケーリングが多いことを示しています。あなたの操作が正規化を維持している場合、それは必要ではありません。 – fche