2013-07-15 55 views
0

我正在openFrameworks,一組C++庫。擦除圖像的部分以使像素透明

我想要做的只是'擦除'ofImage的某些像素(加載/顯示圖像的類,並且可以訪問它的像素數組),當形狀(橡皮擦)通過適當的圖像的像素。非常簡單的東西 - 我想 - 但我有一個心理障礙!

ofImage有兩種方法 - getPixels()getPixelsRef()似乎接近我正在嘗試做的,但我使用的方法並不完全給我我想要的結果。

這裏是企圖從背景圖像的像素更新前景圖像的像素的一個示例:

ofPixelsRef fore = foreground.getPixelsRef(); 
ofPixelsRef back = background.getPixelsRef(); 

for(int x = 0; x < foreground.getWidth()/2; x++) { 
    for (int y = 0; y < foreground.getHeight(); y++) { 
     ofColor c = back.getColor(x, y); 
     fore.setColor(x, y, c); 
    } 
} 

foreground.setFromPixels(前);

,這裏是企圖靜態色彩搭配預定顏色的前景(我認爲這是我想做的事,用透明的白?!?):

ofPixelsRef fore = foreground.getPixelsRef(); 
ofColor c(0, 127); 
for(int x = 0; x < foreground.getWidth(); x++) { 
    for (int y = 0; y < foreground.getHeight(); y++) { 
     fore.setColor(x, y, c); 
    } 
} 

foreground.setFromPixels(fore); 

也不是很在哪裏想要去,但我認爲他們是一個正確的方向刺。 如果任何人有什麼想法,我會全力以赴。

我會考慮轉移到ofFbo類,甚至是GLSL(如果有一個乾淨的潛在客戶/示例)。 隨意發佈香草C++,我會看看我能做些什麼將它移植到oF。

感謝,

〜傑西

回答