我有一个非常奇怪的问题... 在我的iPhone应用程序,用户可以打开一个图像从相机胶卷,在我的例子中,一个 壁纸1920 x 1080像素(72 dpi)。保存UIImage与72 dpi(视网膜模拟器保存144 dpi)
现在,想要调整图像的宽度来调整图像的宽度。 1024 px:
+ (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
[image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSLog(@"New image has w=%f, h=%f", newImage.size.width, newImage.size.height);
return newImage;
}
随着日志消息,我可以检查,宽度是1024,高度是576.一切都很好!
但现在,我保存在文件夹中的图片:
NSString *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%@.jpg", uniqueId]];
[UIImageJPEGRepresentation(originalImage, 1.0) writeToFile:jpgPath atomically:YES];
现在一个很奇怪的效果:
一)当我使用的Retina模拟器,保存的图像在“/用户/ [ ...]/Library/Application Support/iPhone Simulator/5.1/Applications /[...]/ Documents /“的大小为1.5 MB,分辨率为144(!)dpi时的分辨率为2048 x 1152像素。
b)当我使用标准模拟器时,尺寸为441 KB,分辨率为72 dpi时的1024 x 768像素。
如何强制保存72 dpi的UIImage?