下面是我的困境:我必須使用RGBA RAW圖像:主圖像(第一張)和副標題曲目(第二張),並且我想以基於第二個圖像的alpha通道:如果它爲零,則從第二個圖像中取像素,如果它是0xFF取第一個圖像的像素,否則在第一個圖像上創建第二個圖像的重疊。下面是用於此代碼:如何將覆蓋透明度應用於RGBA圖像
if(frame->bytes[pc + 3] == 0xFF) /* this is NO transparency in the overlay image, meaning: take over the overlay 100% */
{
pFrameRGB->data[0][pc] = frame->bytes[pc]; // Red
pFrameRGB->data[0][pc+1] = frame->bytes[pc+1];// Green
pFrameRGB->data[0][pc+2] = frame->bytes[pc+2];// Blue
}
else
if(frame->bytes[pc + 3] != 0) /* this is full transparency in the overlay image, meaning: take over the image 100% */
{
pFrameRGB->data[0][pc] |= frame->bytes[pc]; // Red
pFrameRGB->data[0][pc+1] |= frame->bytes[pc+1];// Green
pFrameRGB->data[0][pc+2] |= frame->bytes[pc+2];// Blue
pFrameRGB->data[0][pc+3] = frame->bytes[pc+3]; // Alpha
}
在pFrameRGB中上面的代碼在目標RGBA圖像,已經包含SOMET形象出現,幀 - >字節的「疊加/字幕」的形象......這裏來我的問題是:有些彩色疊加/字幕圖像的目的地太多色彩...所以它不像字幕圖像覆蓋了我想獲得的效果,但是您可以看到一系列的顏色(例如:我有一個紅色/綠色覆蓋圖像,並且我希望覆蓋圖像看起來像是一個「蒼白」的紅色/綠色覆蓋圖,下面是圖像,但是通過上面的方法,我在下面的圖像上獲得了很多彩色像素)。你有沒有更好的方法呢?
謝謝, fritzone
什麼庫?什麼語言? – Oded 2010-08-04 07:27:41