ofImageへのマスク処理
0.9.0~ できるようになったというofImageへのマスク処理 setAlphaMask (参考:画像を形を指定してマスクする)を試してみました。
サンプルコード
[cpp]ofPath path;
ofImage img;
ofFbo fbo;void ofApp::setup(){
ofHideCursor();
//set path
for(auto i = 0 ; i < 100 ; i++){
ofSetColor(255);
const auto pos = ofPoint(ofRandom(float(ofGetWidth())),float(ofRandom(ofGetHeight())));
path.lineTo(pos);
}//set fbo
fbo.allocate(ofGetWidth(),ofGetHeight(),GL_RGBA /*GL_LUMINANCE*/);
fbo.begin();
path.draw();
fbo.end();//set img
//dataフォルダに好きな画像を入れてください。
if(!img.load("mirrorboy.jpg")){
ofLog() << "image is not loaded." ;
};img.setAnchorPercent(0.5,0.5);
img.getTexture().setAlphaMask(fbo.getTexture());
}void ofApp::draw(){
ofBackgroundGradient(ofColor::yellow,ofColor::gray);
ofSetColor(255);
img.draw(ofGetWidth()/2,ofGetHeight()/2);}
[/cpp]