UIImagePNGRepresentation()和scale(iPhone 4屏幕)是什么意思?

6
我有一些生成图像的代码,使用了UIGraphicsBeginImageContext()、UIGraphicsGetImageFromCurrentImageContext()和UIImagePNGRepresentation()进行绘制,然后将其保存为PNG格式以备后用。
UIImagePNGRepresentation()是否考虑缩放?也就是说,如果我有一个宽度为20点的图像,那么生成的PNG文件是20个像素还是40个像素?
另外,当我显示这些图像时,我使用[UIImage imageWithContentsOfFile:]和[image drawInRect:]。有没有一种方法可以提示这些方法使用更高分辨率的绘制?
1个回答

6
根据iPhone应用程序编程指南,您应该使用比例为2.0的UIGraphicsBeginImageContextWithOptions创建适当缩放的iPhone 4上下文。至于您问题的第二部分,我认为您应该在基本名称上加上@2x后缀保存生成的png文件(例如,myImage@2x.png)。然后,当您使用UIImage重新加载它时,它的大小和比例将被正确设置。否则,您的图像将以比例1.0加载,并且点数将是您期望的两倍大。同一文档的这一部分详细介绍了高分辨率显示设备的高分辨率图像。

如果我使用2.0比例创建了上下文(比如说宽度为20个点),那么当我调用UIImagePNGRepresentation()时,生成的PNG文件宽度会是40个像素吗? - Amy Worrall
根据我对文档的理解,是的。虽然我承认我自己没有尝试过。所以你创建了一个20x20 pt的上下文,缩放因子为2.0。你得到一个40x40像素的图像。你将其保存为image@2x.png。然后当你用UIImage加载它时,它将再次成为20x20 pt,缩放为2.0。如果你将其保存为image.png并加载它,你将得到一个40x40 pt,缩放为1.0的图像。 - Jason Foreman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接