Unity3d 屏幕截图。并保存。iOS
- ( 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; } } }