Cocos2d-x RenderTexture Android图库中的图像为黑色(空白)

时间:2014-10-27 07:37:56

标签: cocos2d-x android-gallery cocos2d-x-3.0

在我的应用中,我使用RenderTexture作为画布。

我想将此画布保存到android照片库,如下所示:

cpp方面:

void Canvas::saveCanvasCallback(cocos2d::Ref *sender)
{
time_t t = time(0);
struct tm * timeinfo= localtime (&t);


char buffer[120];
  strftime(buffer,120,"image_%d%m%Y%I%M%S.png",timeinfo);


auto callback = [&](RenderTexture* rt, const std::string& path)
{
#if CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID
    addImageToGallery(path.c_str());


#else
      CGameManager_iOSBridge::addImageToGallery(path.c_str());

#endif


};


_target->saveToFile(buffer, Image::Format::PNG, true, callback);

CCLOG("Image saved %s \n", buffer);


}

java方面:

static  void addImageToGallery (String path) {


    ContentValues values = new ContentValues();
    values.put(Images.Media.DATE_ADDED, System.currentTimeMillis());
    values.put(Images.Media.DATE_TAKEN, System.currentTimeMillis());
    values.put(Images.Media.MIME_TYPE, "image/png");
    values.put(MediaStore.MediaColumns.DATA,    Environment.getExternalStorageDirectory().getPath()+path);

    getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI, values);

    me.runOnUiThread(new Runnable() {

        @Override
        public void run() {

            Toast.makeText(me.getApplicationContext(), "Image saved ",
                    Toast.LENGTH_LONG).show();


        }
    });
}

已保存的图片在图库中为黑色(空白)(对于iOS,它可以正常工作)。

我正在使用cocos2d-x V3.3

请帮帮我

由于

0 个答案:

没有答案