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);
Android下分享一张图片
Intent 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)));
}
linux系统下的文件权限
一般情况下android下的每一个应用程序都是一个独立的用户,对应一个独立的组。一个文件的权限由3组3个二进制位表示。
位置0 | - 代表文件 d 代表目录 |
位置1-3(当前用户) | r 可读;w 可写;x 可执行 |
位置4-6(当前用户所在的组) | r 可读;w 可写;x 可执行 |
位置7-9(其他用户的权限) | r 可读;w 可写;x 可执行 |
-代表0
d、r、w、x都是代表1
如:rw-r--r--表示当前用户可读可写,用户所在组可读,其他用户可读。对应的十进制值为 6 4 4。