iOS 将 jpg 压缩为不合适的大小

iOS compress jpg not in a right size

我尝试用 0.4 质量压缩一张 jpg。我使用 NSlog 打印数据大小,它显示 NSData 大小为 337613,但保存到相册后,文件增加到 677947。

我能用它做什么? PS: 图像对象来自相机。

NSData *newData =UIImageJPEGRepresentation(image,0.3f);
UIImage *compressdImg30 = [UIImage imageWithData:newData];
NSLog(@"[after 0]newData.length=%u",[newData length]); // print 337613 in debug
UIImageWriteToSavedPhotosAlbum(compressdImg30,nil,nil,nil); 

然后我插入 iPhone 并将文件复制到我的 Mac Mini,然后键入 "ls -ltr" 查看文件大小,然后显示 677947。

您可以使用ALAssetsLibrary
-writeImageDataToSavedPhotosAlbum:metadata:completionBlock:
将图像数据保存到库的方法。

ALAssetsLibrary *al = [[ALAssetsLibrary alloc] init];
[al writeImageDataToSavedPhotosAlbum:data metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
    NSLog(@"Completion block/Do check the error if any");
}];

试试看