使用@2x文件检测UIImage

使用@2x文件检测UIImage,image,ipad,opengl-es,uiimage,scale,Image,Ipad,Opengl Es,Uiimage,Scale,好的,我正在为新的iPad制作一个带有视网膜显示屏的应用程序。现在,我正在通过UIImage loader将图像导入openGL,这样我就可以使用@2x图像进行新的显示。我也这样做,如果iPad的屏幕比例因子为2.0,那么它会将我的图像比例设置为0.5 这适用于具有@2x文件的图像,但有些图像没有,它们的大小只有原来的一半,并且不合适。所以我想找到一种方法来检测UIImage何时使用@2x图像而不是原始图像。有办法做到这一点吗 PS:我不想为每个图像创建一个@2x文件并占用不必要的空间。使用UI

好的,我正在为新的iPad制作一个带有视网膜显示屏的应用程序。现在,我正在通过UIImage loader将图像导入openGL,这样我就可以使用@2x图像进行新的显示。我也这样做,如果iPad的屏幕比例因子为2.0,那么它会将我的图像比例设置为0.5

这适用于具有@2x文件的图像,但有些图像没有,它们的大小只有原来的一半,并且不合适。所以我想找到一种方法来检测UIImage何时使用@2x图像而不是原始图像。有办法做到这一点吗


PS:我不想为每个图像创建一个@2x文件并占用不必要的空间。

使用
UIImage
scale
属性

从文件中:

如果从名称包含@2x修改器的文件加载图像,则比例设置为2.0。如果文件名不包含修改器,但为PNG或JPEG格式,并且具有关联的DPI值,则会计算相应的比例因子并反映在此属性中。从核心图形图像初始化图像时,也可以指定显式比例因子。假设所有其他图像的比例因子为1.0

如果将图像的逻辑大小(存储在size属性中)乘以此属性中的值,则可以获得图像的尺寸(以像素为单位)


使用
UIImage
scale
属性

从文件中:

如果从名称包含@2x修改器的文件加载图像,则比例设置为2.0。如果文件名不包含修改器,但为PNG或JPEG格式,并且具有关联的DPI值,则会计算相应的比例因子并反映在此属性中。从核心图形图像初始化图像时,也可以指定显式比例因子。假设所有其他图像的比例因子为1.0

如果将图像的逻辑大小(存储在size属性中)乘以此属性中的值,则可以获得图像的尺寸(以像素为单位)


您可以重新实现
UIImage
imageNamed:
,并保留每个图像的记录。我不确定是否有一个更短/更容易/更好的方法。我为任何想知道的人找到了答案。UIImage没有查找文件名,而是有一个称为“scale”的属性,如果加载@2x图像,该属性的值为2.0,否则为1.0。这应该很方便。您可以重新实现
UIImage
imageNamed:
并保留每个图像的记录。我不确定是否有一个更短/更容易/更好的方法。我为任何想知道的人找到了答案。UIImage没有查找文件名,而是有一个称为“scale”的属性,如果加载@2x图像,该属性的值为2.0,否则为1.0。这应该会派上用场。