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(fore);

这是尝试用预定颜色静态着色前景(我认为这是我想要做的,用透明的白色?!?):

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。也可以随意发布 vanilla C++,我会看看我能做些什么来将它移植到 oF。

谢谢,

〜杰西

4

1 回答 1

0

仅供参考,我在此页面上找到了详细的解决方案:http: //forum.openframeworks.cc/index.php/topic,12899.0.html

于 2013-07-30T18:12:49.397 回答