2

我有一个以编程方式创建的 UIImage 图像,使用这种代码:

UIGraphicsBeginImageContextWithOptions(CGSizeMake(128, 128), NO, 0.0f);
// Render in context
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

由于我的上下文选项指定比例为 0,因此在视网膜设备上它将设置为 2,我可以在生成的 UIImage 比例属性上确认这一点。

现在,问题是该图像尺寸为 128x128,比例为 2。当我将其放入尺寸为 64x64 且 contentMode = Center 的 UIImageView 中时,它会将我的图像渲染到 imageview 之外,大概会渲染到 128x128 的盒子中而没有任何缩放。

我对视网膜图形的理解是,如果图像的比例因子为 2.0,则它应该以 1/2 大小渲染,从而导致更高的 DPI。所以我期待图像视图以视网膜质量渲染 64x64 图像。我哪里错了?

4

1 回答 1

0

图像将以您给定的尺寸渲染 - 128 x 128。比例因子意味着您将拥有更好的渲染曲线等,但图像仍将是 128 x 128 点。如文档中所述,大小参数为:

新位图上下文的大小(以磅为单位。这表示 UIGraphicsGetImageFromCurrentImageContext 函数返回的图像的大小。

如果您想要视网膜质量的 64x64 图像,请为您的上下文使用 64x64 大小。

于 2012-08-23T19:55:17.227 回答