gpt4 book ai didi

objective-c - 使用 UIImageJPEGRepresentaion() 将 UIImage 转换为 NSData 并将其保存到文件会增加文件大小(以字节为单位)

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:59 26 4
gpt4 key购买 nike

我有一个要求,用户可以从 camera roll 中选择一张图片,我的应用程序需要优化图片并将其上传到服务器。我正在使用 ALAssets 库和一个自定义选择器,供用户从 camera roll 中选择照片。我能够完美地实现这一点,但是文件大小增加有问题。

问题如下:
当用户选择一张 1.7MB 的照片(这是我尝试邮寄照片时 iOS 报告的完整大小),当我直接从 ALAssetRepresentation< 获取字节时 ALAsset 并将其转换为 NSData 数据大小也是 1.7MB。但是,当我使用以下代码从 ALAssetRepresentation 获取 UIImage 时..

UIImage *selImage = [UIImage imageWithCGImage:[assetRepresentation fullResolutionImage] scale:[assetRepresentation scale] orientation:[assetRepresentation orientation]];

并使用压缩质量 = 1.0f 的 UIImageJPEGRepresentation()UIImage 转换为 NSData,NSData 大小几乎是原始大小的两倍(3.2MB)。

理想情况下它不应该只有 1.7MB 吗??

正如预期的那样,当我将它保存到一个文件时,文件大小仍然是 3.2MB(我通过导入沙盒应用程序的文档文件夹使用 xcode 4.2 检查它)。但有趣的是,当我在我的 mac 上使用 Preview 打开文件并检查字节大小时,它显示 1.7MB(原为 3.2MB),这非常令人困惑。

请帮忙..

提前致谢。

最佳答案

您指定的压缩质量是多少?这与原始图像上使用的相同还是不同?如果不一样,用相同的压缩因子试试看大小是否一样。

NSData * UIImageJPEGRepresentation (
UIImage *image,
CGFloat compressionQuality
);

关于objective-c - 使用 UIImageJPEGRepresentaion() 将 UIImage 转换为 NSData 并将其保存到文件会增加文件大小(以字节为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11500396/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com