0

私は、C++ ライブラリのセットであるopenFrameworksで作業しています。

私がやろうとしているのは、形状(消しゴム)が画像の適切なピクセルを通過するときに、ofImage(画像をロード/表示し、そのピクセル配列にアクセスできるクラス)の特定のピクセルを単純に「消去」することです. かなり単純なことだと思いますが、私はメンタルブロックを抱えています!

ofImage には 2 つの方法が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 に移植するために何ができるか見ていきます。

ありがとう、

〜ジェシー

4

1 に答える 1

0

参考までに、このページで詳細な解決策を見つけました: http://forum.openframeworks.cc/index.php/topic,12899.0.html

于 2013-07-30T18:12:49.397 に答える