- ( 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;
}
}
}