我正在创建一个应用程序,它允许用户使用 UIImagePickerController 从照片库中选择图像,然后使用 ALAssets 库保存图像。但是我的应用程序保存的图像的质量和大小之间存在差异。与从照片库中挑选的原始图像相比。
我添加了日志记录以检查被拾取的图像的大小以及使用 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 MB。但保存在照片库中的图像大小只有 2 MB 多一点。请告诉我为什么图像有差异?我能做些什么来保存与原始图像精确大小的图像?