您的位置:首页 > 移动开发 > Unity3D

Unity3d 屏幕截图。并保存。iOS

2014-04-17 18:38 274 查看
- ( void ) imageSaved: ( UIImage *) image didFinishSavingWithError:( NSError *)error
contextInfo: ( void *) contextInfo
{
NSLog(@"保存结束");
if (error != nil) {
NSLog(@"有错误");
}
}
void _SavePhoto(char *readAddr)
{
NSString *strReadAddr = [NSString stringWithUTF8String:readAddr];
UIImage *img = [UIImage imageWithContentsOfFile:strReadAddr];
NSLog([NSString stringWithFormat:@"w:%f, h:%f", img.size.width, img.size.height]);
PhotoManager *instance = [PhotoManager alloc];
UIImageWriteToSavedPhotosAlbum(img, instance,
@selector(imageSaved:didFinishSavingWithError:contextInfo:), nil);
}


using UnityEngine;
using System.Runtime.InteropServices;

public class TestSavePhoto : MonoBehaviour
{
[DllImport("__Internal")]
private static extern void _SavePhoto(string readAddr);

private string _cptrAddr;

private void OnGUI()
{
if (GUILayout.Button("_SavePhoto!", GUILayout.Height(50), GUILayout.Width(200)))
{
Debug.Log("_SavePhoto");
var readAddr = Application.persistentDataPath + "/" + _cptrAddr;
_SavePhoto(readAddr);
}
if (GUILayout.Button("TakePhoto", GUILayout.Height(50), GUILayout.Width(200)))
{
Debug.Log("TakePhoto");
var cptrAddr = "testpic"; //捕捉地址
var readAddr = Application.persistentDataPath + "/" + cptrAddr;//读取地址,这两个地址在iOS里不一样
Debug.Log("cptr:" + cptrAddr + ", read:" + readAddr);
Application.CaptureScreenshot(cptrAddr);
_cptrAddr = cptrAddr;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: