iphone 4s – UIImage CGImage图像尺寸

我有一个崩溃,只发生在4S(不在3GS上)。 我怀疑它是因为@ 2x。 基本上我得到的图像原始字节和操纵。 这是我的问题。

我加载下面的示例代码中提到的图像。 最后,uiWidth应该是2000,cgwidth应该是2000.正确吗? (如果图像是从相机胶卷加载的,或者其自动缩放和uiWidth将是4000?

//test.jpg is 2000x 1500 pixels. NSString *fileName = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"jpg"]; UIImage *image = [UIImage imageWithContentsOfFile:fileName]; int uiWidth = image.size.width; CGImageRef cgimg = image.CGImage; int cgWidth = CGImageGetWidth(cgimg); 

感谢您的帮助。

UIImage报告的size是点,而不是像素。 你需要考虑到UIImagescale属性。

换句话说,如果test.jpg是1000×1000,那么UIImage.size会报告1000×1000。 如果test@2x.pngtest@2x.png ,那么UIImage.size也会报告1000×1000。 但在UIImage.scale情况下, UIImage.scale会报告2。

CGImageGetWidth以像素为单位报告其宽度,而不是点数。