Xcode NSData图像大小更改

问题描述:

我想要保存图像。因此我将它转换为NSData。 但是在这些步骤中,图像 的宽度和高度将会改变。它的大小增加了。这发生在iPad Air 系列中,宽度/高度保持不变。Xcode NSData图像大小更改

NSLog(@"BEFORE %f %f",image1.size.width,image1.size.height); // Displays 200 133 

// Convert to NSData 
NSData *imagedata = UIImageJPEGRepresentation(image1,0.8f); 

// Store etc. 

// Convert it back 
UIImage *image2=[UIImage imageWithData:imagedata]; 

NSLog(@"AFTER %f %f",image2.size.width,image2.size.height); // Displays 400 266 

我不希望图片大小增加!

+0

经过一个令人沮丧的搜索下午后,我发现除了'大小',每个图像还有一个'比例'。这很难记录。对于这种情况,image1的比例被设置为2.转换后的比例值为1.非常奇怪,不可能设置比例,只能读取比例。我必须执行整个例程才能修复这个问题。 :-( – Vincent 2015-04-06 10:16:25

对于那些仍然想要这个问题的答案的人,正如文森特指出的那样,图像有一个缩放因子。使用下面的代码来修复它:

UIImage *originalImage = [UIImage imageNamed:@"image.png"]; 
UIImage *scaledImage = [UIImage imageWithCGImage:[originalImage CGImage] scale:1.0 orientation:(originalImage.imageOrientation)];