先看下面的代码:

Cocos2d-x截图实现

#include "cocos2d.h"

USING_NS_CC;

// 设置纹理宽、高、像素质量

CCRenderTexture* tx = CCRenderTexture::create(CCDirector::sharedDirector()->getWinSize().width,

CCDirector::sharedDirector()->getWinSize().height,

kCCTexture2DPixelFormat_RGBA8888);

tx->begin();

CCDirector::sharedDirector()->getRunningScene()->visit();

tx->end();

tx->saveToFile(path, kCCImageFormatPNG);

图片将会保存在data/data/包名/files目录下。

Android下分享一张图片

1Intent shareIntent = new Intent(Intent.ACTION_SEND);//shareIntent.putExtra(Intent.EXTRA_TEXT, 文本);String imgPath = 图片路径;File file = new File(imgPath);if (file.exists()) {try { //一般情况下,保存的图片文件权限为rw- rw- rw-(外部可读写),但有的机型可能是rw- --- ---(外部不可读写),如果是后者会分享失败,因为外部不能读取这张图片。为了保证正常分享,需要通过chmod命令修改图片文件的权限。 // 修改文件权限为-rw-r--r--,外部可读 Process p = Runtime.getRuntime().exec("chmod 644 "+imgPath); int status = p.waitFor(); //让当前线程等待 if (status == 0) { // 返回0表示正常终止 Log.d(TAG, "chmod succeed"); } else { Log.d(TAG, "chmod failure"); } } catch (Exception e) { e.printStackTrace(); }Uri uri = Uri.fromFile(file);shareIntent.putExtra(Intent.EXTRA_STREAM, uri);shareIntent.setType("image/png");startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.SHARE)));


1.jpg

linux系统下的文件权限

一般情况下android下的每一个应用程序都是一个独立的用户,对应一个独立的组。一个文件的权限由3组3个二进制位表示。


2.jpg

-代表0

d、r、w、x都是代表1

如:rw-r--r--表示当前用户可读可写,用户所在组可读,其他用户可读。对应的十进制值为 6 4 4。