为什么.jpeg文件使用UIImageJPEGRepresentation方法通过writetofile保存大尺寸然后在ios中使用UIImageWriteToSavedPhotosAlbum

时间:2016-01-12 10:05:26

标签: ios objective-c ipad uiimagejpegrepresentation

我正在尝试将UIImage对象保存到设备中的.jpeg文件中 我正在使用此代码:

-(void)saveImageToDocumentsDirectory:(UIImage *)mimage withFileName:(NSString *)fileName 
{
    UIImageWriteToSavedPhotosAlbum(mimage,nil,nil,nil);
    NSData *dataForJPEGFile = UIImageJPEGRepresentation(mimage, 1.0);
    NSError *error2 = nil;
    if (![dataForJPEGFile writeToFile:[self getDirectoryFilePath:fileName] options:NSAtomicWrite error:&error2])
    {
        return;
    }
}

它将保存.jpeg类型的图像,但与UIImageWriteToSavedPhotosAlbum(mimage,nil,nil,nil)方法相比需要占用太多内存,这样可以保存.jpeg类型和相同质量的相同图像对象。

我的问题是为什么...... ??

1 个答案:

答案 0 :(得分:-1)

你将质量设置得非常高(1.0),我猜想当我在某处阅读时,0.6或0.7对于jpeg文件来说已经足够了。

NSData *dataForJPEGFile = UIImageJPEGRepresentation(mimage, 0.65);

也许你可以根据你的应用程序使用找到合适的质量,对我来说,有时0.5就足够了。