我拿了一张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);
NSData
有特定的原因吗? - Nathan White