我有一个以编程方式创建的UIImage图像,使用这种代码:
UIGraphicsBeginImageContextWithOptions(CGSizeMake(128, 128), NO, 0.0f);
// Render in context
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
由于我的上下文选项指定scale为0,因此在视网膜设备上它将设置为2,并且我可以在得到的UIImage scale属性上确认。
现在,问题是这个图像大小是128x128,比例2.当我将它放入大小为64x64的UIImageView并且contentMode = Center时,它将我的图像渲染到imageview之外,可能会渲染到128x128框而没有任何缩放。< / p>
我对视网膜图形的理解是,如果图像具有比例因子2.0,则应该以1/2尺寸呈现,从而导致更高的DPI。 所以我期待图像视图以视网膜质量渲染64x64图像。我哪里错了?
答案 0 :(得分:0)
图像将以您给出的尺寸渲染 - 128 x 128.比例因子意味着您将拥有更好的渲染曲线等,但图像仍然是128 x 128点。如文档中所述,size参数为:
新位图上下文的大小(以点衡量)。这表示UIGraphicsGetImageFromCurrentImageContext函数返回的图像的大小。
如果您需要视网膜质量的64x64图像,请根据您的背景使用64x64尺寸。