사용자가 UIImagePickerController를 사용하여 사진 라이브러리에서 이미지를 선택한 다음 ALAssets 라이브러리를 사용하여 이미지를 저장할 수있는 앱을 만듭니다. 그러나 내 앱에 저장되는 이미지의 품질과 크기에는 차이가 있습니다. 사진 라이브러리에서 가져온 원본 이미지와 비교할 때ALAsset Library는 사진 라이브러리에 저장하는 동안 이미지 크기를 줄입니다.
촬영하는 이미지의 크기와 ALAsset 라이브러리를 사용하여 사진 라이브러리에 저장된 이미지를 확인하기위한 로깅을 추가했습니다.
-(void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info
objectForKey:UIImagePickerControllerOriginalImage];
NSLog(@"Size of the image picked in bytes: %i",[UIImageJPEGRepresentation(image,1.0f) length]);
}
-(void)methodToSaveImage:(UIImage*)image metadata:(NSMutableDictionary*)info
{
@autoreleasepool {
NSLog(@"Size of image passed to be saved: %i",[UIImageJPEGRepresentation(image,1.0f) length]);
[self writeImageToSavedPhotosAlbum:image.CGImage metadata:info
completionBlock:^(NSURL* assetURL, NSError* error) {
//error handling
if (error!=nil) {
return;
}
ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
{
NSLog(@"Size of image after being saved in photo library : %i",[myasset defaultRepresentation].size);
};
//
ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror)
{
NSLog(@"cant get image - %@",[myerror localizedDescription]);
};
[self assetForURL:assetURL
resultBlock:resultblock
failureBlock:failureblock];
}];
}
}
포착하고 저장하도록 전달 된 화상의 바이트 크기는 동일하며 대략 4메가바이트 그러나 사진 라이브러리에 저장된 이미지의 크기는 2MB를 약간 넘습니다. 왜 이미지에 차이가 있는지 알려주세요. 원본 이미지와 동일한 크기의 이미지를 저장하려면 어떻게해야합니까?
도움이됩니다. http://stackoverflow.com/questions/12355589/uiimagepickercontrolleroriginalimage-vs-original-asset-data –