2013-07-15 56 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。

感谢,

〜杰西

回答