gpt4 book ai didi

objective-c - 如何以字节为单位获取图像的确切大小?

转载 作者:太空狗 更新时间:2023-10-30 03:45:29 28 4
gpt4 key购买 nike

我通过将图像转换为 NSData 来计算图像大小(以字节为单位),但它的数据长度得到了错误的值。

    NSData *data = UIImageJPEGRepresentation(image,0.5);
NSLog(@"image size in bytes %lu",(unsigned long)data.length);

最佳答案

实际上,这里的 UIImage.length 函数并没有返回错误的值,它只是从 UIImage 到 NSData 的有损转换/还原的结果。

在 UIImageJpegRepresentation 中将 compressionQuality 设置为可能的最低压缩率 1.0 将不会返回原始图像。虽然在此过程中图像元数据被剥离,但该函数可以而且通常会产生比原始对象更大的对象。请注意,文件大小的增加也不会提高压缩原始图像的质量。 Jpeg 一开始是高度压缩的,这就是为什么它们经常被使用的原因,函数是解压缩它然后重新压缩它。这有点像在年龄拉长了你的 body 后打了肉毒杆菌素,它可能看起来和原来的差不多,但里面却没有以前那么好了。

您可以对较大的文件有条件地使用较低的 compressionQuality,接近 1.0,因为质量会迅速下降。除此之外,根据图像的最终用途,唯一的选择是调整图像大小或调整其分辨率,也许除了调整压缩率之外。此更改将以指数方式减少数据使用。 Web 和移动使用通常不需要像用于数字打印的图像那样的分辨率。

您可以编写一些代码,仅根据需要调整每个图像和 NSData 表示以适应其单独的数据约束。

关于objective-c - 如何以字节为单位获取图像的确切大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23926069/

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