- (void)imagePickerController:(TZImagePickerController *)picker
didFinishPickingPhotoModes:(NSArray<RHPhotoModel *> *)photos
sourceAssets:(NSArray *)assets
isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto
infoArray:(NSArray *)infoArray {
for (RHPhotoModel *model in photos) {
UIImage *tmpImage = [UIImage imageWithContentsOfFile:model.photoPath];
NSData *data1 = UIImageJPEGRepresentation(tmpImage,1);
NSData *data2 = [NSData dataWithContentsOfFile:model.photoPath];
UIImage *image = [UIImage imageWithData:data2];
NSData *data3 = UIImageJPEGRepresentation(image,1);
NSLog(@"data1=%lu, data2=%lu, data3=%lu", (unsigned long)data1.length, (unsigned long)data2.length, (unsigned long)data3.length);
}
[self dismissViewControllerAnimated:YES completion:nil];
}
使用上述方法完成返回包含图像 photoPath 的 PhotoModel;
为什么我使用 [NSData dataWithContentsOfFile:model.photoPath];
data2 是 2497519 字节;
但是,我使用 UIImage *tmpImage = [UIImage imageWithContentsOfFile:model.photoPath]; NSData *data1 = UIImageJPEGRepresentation(tmpImage,1); data1 是 7234468 字节;
NSLog 数据:data1 = 7234468(字节),data2 = 2497519(字节),data3 = 7234468(字节)
这就是JPEG
格式的用途——“压缩数据”。有关.jpg
格式的信息可以在此处的Wikipedia 上找到。然而,这背后的数学可能有点复杂。
基本思想是我们希望以更小的尺寸保存相同的图像数据,因此我们使用不同的压缩算法将图像转换为更小的图像。压缩数据可以是lossy
或lossless
。例如,PNG
是无损的,这意味着质量将保持不变,而JPEG
更常用的是有损压缩。
只需将压缩视为ZIP
计算机上的文件,它会使文件大小更小。在 Xcode 中,JPEG
当压缩质量设置为 1 时,文件的大小可能会大于原始文件。但是,使用较低的压缩质量会导致压缩文件变得更加模糊或颜色怪异。
根据我的经验,我意识到将压缩质量设置为 0.4~0.5 可以在文件大小适中的情况下保持更好的质量。希望这可以帮助:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句