2011-03-23 12 views
1

UIImagePickerController를 사용하여 이미지를 선택합니다. 나는 정보 클래스에서 다음 키를 얻는다.UIImagePickerController에서 URL을 가져 오는 방법

UIImagePickerControllerOriginalImage = MonoTouch.UIKit.UIImage  
UIImagePickerControllerReferenceURL = assets-library://asset/asset.PNG?id=1000000001&ext=PNG  
UIImagePickerControllerMediaType = public.image 

나는이 이미지를 나중에 사용할 수있는 참조 URL을 사용할 수 없습니다. 이 참조를 사용하려면 어떻게해야합니까?

imageURL = e.Info[new NSString ("UIImagePickerControllerReferenceURL")].ToString(); 

imageBackground = UIImage.FromFile (imageURL); 

답변

3

iOS에서는 이미지 파일에 대한 직접 액세스를 허용하지 않습니다. 오히려 이미지 사본을 만듭니다 (UIImagePickerControllerOriginalImage의 형식). UIImage 객체를 얻기 위하여 그래서, 당신은 사용하여 더 나을 수 있습니다 :

UIImage image = (UIImage)info.ObjectForKey(new NSString("UIImagePickerControllerOriginalImage")); 

편집

당신이 다음 응용 프로그램 문서 영역에 UIImage을 저장 다시 따기 시도 할 수 있습니다. 따라서 다음 줄의 내용은 다음과 같습니다.

UIImage image = (UIImage)info.ObjectForKey(new NSString("UIImagePickerControllerOriginalImage")); 
NSData imageData = image.AsPNG(); 
imageData.Cast<Byte>(); 
byte[] imageBytes = new byte[imageData.Length]; 
int length = (int)imageData.Length; 
Marshal.Copy(imageData.Bytes, imageBytes, 0, length); 
string destPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal); 
string fileName = "picture.png"; 
string filePath = Path.Combine(destPath, fileName); 
File.WriteAllBytes(filePath, imageBytes); 

이 작업을 확인할 수는 없지만 시작 지점을 제공해야합니다. 그런 다음 나중에 응용 프로그램에서 파일에 액세스 할 수 있습니다. 파일을 다 끝내면 파일을 삭제하십시오!

+0

나는 참조 값을 저장하고 나중에이 이미지를 사용하려고합니다. – atmuc

+0

내 대답을 편집했습니다. 그것은 UIImage의 사본을 받아 아이폰 개인 문서 폴더에있는 파일에 저장하고 필요할 때 언제든지 검색 할 수 있습니다. – Luke

관련 문제