微信图片分享

作者 qiuzhong 日期 2016-10-16
微信图片分享

这周在app中添加了微信分享的功能,具体的操作方式是利用cocos2d-x提供的截屏API,获取图片,然后通过微信的图片分享API分享给好友。在这个过程中遇到了一个坑,记录一下.

一开始我使用的cocos2d-x的截屏API如下:

//获取屏幕尺寸大小
Size winSize = CCDirector::sharedDirector()->getWinSize();
//创建RenderTexture,纹理图片大小为窗口大小winSize
RenderTexture* screen = RenderTexture::create(winSize.width, winSize.height);
//屏幕截图
screen->begin(); //开始抓屏
this->getParent()->visit(); //遍历当前场景Scene的所有子节点信息,画入screen中
screen->end(); //结束抓屏
//保存截图
screen->saveToFile("ScreenShot.png", Image::Format::PNG); //保存为PNG格式

这个API截取的图片分享到微信后,微信显示的只有缩略图,点击缩略图,是没有高清大图的。

后来发现新版本的cocos2d-x提供了一个新的API:

std::string path =StringUtils::format("%s/mahjong_screen_shot.png",SD_CARD_PATH);
utils::captureScreen(NULL ,path);

这个API可以主动选择图片的保存路径,只要把保存路径修改为手机SD卡,分享的图片就可以显示高清原图了。