我正在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。
感謝,
〜傑西