8
我拍摄了一张13.3MB的图像并将其添加到XCode。我知道编译时,XCode会执行一些技巧来降低文件大小。我这样做,来测试像现在有多大,,转换成数据后:以字节为单位给出的不准确的NSData大小
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);
是否有一个特定的原因,你想图像的NSData'? – 2013-03-27 10:23:40
如果您回答了您的问题,请回答并标记为正确。 – 2013-03-27 10:24:22
@NathanWhite 1.我需要NSData,以便在测试应用程序中测试一些内存使用情况。 2.第一个问题仍然存在 - 为什么UIImageJPEGRepresentation会将图像的大小缩小2倍? – Andrew 2013-03-27 10:25:46