我在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。
谢谢,
〜杰西