openFrameworksでFboのスクリーンショットを保存する方法


openFrameworksでFboのスクリーンショットを保存する方法です。
ofFboをを一旦ofPixelsに変換したのちofImageにするとうまくいくようです。

    ofImage img;
    ofFbo fbo;
    ofPixels pixels;

sキーが押されたらファイルが保存されるようにします。

void ofApp::keyPressed(int key){
    if(key =='s'){
        fbo.readToPixels(pixels);
        img.setFromPixels(pixels);
        char fileNameStr[255];
        string date = ofGetTimestampString();//タイムスタンプをファイル名にする
        sprintf(fileNameStr, "%s.png", date.c_str());
        img.save(fileNameStr,OF_IMAGE_QUALITY_BEST);
    }
}
atnr.net の RSS登録はこちらから