iphone 4s - UIImage CGImage图像尺寸

时间:2012-10-30 02:35:42

标签: ios uiimage size 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);

感谢您的帮助。

1 个答案:

答案 0 :(得分:13)

size报告的UIImage是以点为单位,而不是像素。您需要考虑scale的{​​{1}}属性。

换句话说,如果UIImage为1000x1000,那么test.jpg将报告1000x1000。如果UIImage.size为2000x2000,则test@2x.png也会报告1000x1000。但在第二种情况下,UIImage.size将报告2。

UIImage.scale报告其宽度(以像素为单位),而非点数。