UIImagePNGRepresentation()和比例(iPhone 4屏幕)

UIImagePNGRepresentation()和比例(iPhone 4屏幕),iphone,cocoa-touch,uikit,ios4,iphone-4,Iphone,Cocoa Touch,Uikit,Ios4,Iphone 4,我有一些图像生成代码,它使用UIGraphicsBeginImageContext()、UIGraphicsGetImageFromCurrentImageContext()和UIImagePNGRepresentation()进行一些绘制,然后将其保存到磁盘作为PNG供以后使用 UIImagePNGRepresentation()是否考虑了比例?如中所示,如果我有一个20点宽的图像,生成的PNG是20像素还是40像素 此外,当我显示这些图像时,我使用[UIImage imageWithCont

我有一些图像生成代码,它使用UIGraphicsBeginImageContext()、UIGraphicsGetImageFromCurrentImageContext()和UIImagePNGRepresentation()进行一些绘制,然后将其保存到磁盘作为PNG供以后使用

UIImagePNGRepresentation()是否考虑了比例?如中所示,如果我有一个20点宽的图像,生成的PNG是20像素还是40像素

此外,当我显示这些图像时,我使用[UIImage imageWithContentsOfFile:]和[image drawInRect:]。是否有方法提示这些方法使用更高分辨率的绘图?

根据,您应该使用比例为2.0的
UIGraphicsBeginImageContextWithOptions
,为iPhone 4创建适当比例的上下文


至于你问题的第二部分,我认为你应该在基本名称上用@2x后缀保存生成的png(例如。,myImage@2x.png). 然后,当您使用UIImage将其加载回时,将正确设置其大小和比例。否则,您的图像将以比例1.0加载,并且其大小(以点为单位)将是您预期的两倍。同一文档的第1部分详细介绍了高分辨率显示设备的高分辨率图像。

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