gpt4 book ai didi

iphone - 以字节为单位给出的 NSData 大小不准确

转载 作者:可可西里 更新时间:2023-11-01 03:10:22 26 4
gpt4 key购买 nike

我拍摄了一张 13.3MB 的图像并将其添加到 XCode。我知道在编译时,XCode 会执行一些技巧来减小文件大小。我这样做是为了测试图像在转换为数据后现在有多大:

UIImage *image = [UIImage imageNamed:@"image.jpg"];
NSData *data = UIImageJPEGRepresentation(image, 1.0);
NSLog(@"length: %i", data.length);

我得到的长度是26758066。如果以字节为单位,那么它对我来说是 26.7MB。图片怎么突然变大了?有没有另一种方法可以让我在不先通过 UIImage 的情况下以数据形式获取图像?

编辑:进一步的测试表明这是可行的,并得出约 13.3MB 的数据长度——预期的数量:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"image" ofType:@"jpg"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSLog(@"length: %i", data.length);

最佳答案

您的代码所做的是将图像解压缩到内存中,然后以最高质量比 (q=1.0) 重新压缩为 JPEG。这就是图像突然变大的原因。

如果您想检查存储在资源包中的文件,请向 NSBundle 询问完整文件路径并使用 NSFileManager 读取文件大小。您可以在 Mac 上手动执行相同的操作,只需查看项目的 BUILD_PRODUCTS_DIR

关于iphone - 以字节为单位给出的 NSData 大小不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656403/

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