通过在iOS中调用UIImageJPEGRepresentation来更改图像数据的原因

时间:2015-08-31 07:55:35

标签: ios encode

这是一个只有3,198字节的images.jpg,在这样调用UIImageJPEGRepresentation之后:

enter image description here

它的数据大小为15,422字节。

为什么?我想知道,imageData正在使用哪种编码形式? UTF-8或UTF-16或其他?并且,原始数据可能正在使用unicode?我不确定,帮助我,谢谢!

更新

感谢@Fonix!

但是PNG怎么样? UIImagePNGRepresentation中只有一个参数,我发现在调用png方法后,2.9M的png将被压缩到62K。所以,如果我想获取SAME数据,我该怎么办?

1 个答案:

答案 0 :(得分:1)

UIImageJPEGRepresentation中使用小于1的值,因为这决定了压缩质量,因此您可能正在使用压缩jpg,并且基本上将其解压缩。 some documention

尝试使用此方法读取图像数据

NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"imageName" withExtension:@"png"];
NSString*stringPath = [imgPath absoluteString]; 

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:stringPath]];