我发生的故障只发生在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);
感谢您的帮助。
答案 0 :(得分:13)
size
报告的UIImage
是以点为单位,而不是像素。您需要考虑scale
的{{1}}属性。
换句话说,如果UIImage
为1000x1000,那么test.jpg
将报告1000x1000。如果UIImage.size
为2000x2000,则test@2x.png
也会报告1000x1000。但在第二种情况下,UIImage.size
将报告2。
UIImage.scale
报告其宽度(以像素为单位),而非点数。