老谭笔记

让OSX软件实现Retina显示的全攻略

在iOS的世界里,远在几年前发布的iOS4.0就已经支持retina显示了,并且iOS的程序们早就已经掌握了在代码中怎么方便快速的实现retina的显示,今天给大家简要的介绍一下在OSX中快速实现retina的方法。

1.对于普通的图片资源

对于图片资源的处理方面跟iOS还是很类似的,就是在高清图片后面加上@2x作为标识,如myPhoto.png对应的高清图片为myPhoto@2x.png,而图片图片也满足宽和高2倍的关系,例如低清图片为32 32,那么高清图片为64 64。在程序代码方面,OSX就有一些差异了,在代码中如果要满足自动匹配高清图片,那么我们在读取图片时就不能带后缀。

例如以前的写法:NSImage *img = [NSImage imageNamed:@”myPhoto.png”];

支持高清的写法为:NSImage *img = [NSImage imageNamed:@”myPhoto”];

以前的写法:NSImage *img = [[NSImage alloc] imageForResource:@”path/myPhoto.png”];

支持高清的写法为:NSImage *img = [[NSImage alloc] imageForResource:@”path/myPhoto”];

当然,如果为了你的工程看起来更简洁,不想看到到处都是@2x的图片,你可以使用tiff格式,将两个不同版本的图片打包到一个tiff文件之中,那么你的图片资源也将会自动匹配高清显示。

将低清与高清图片打包成tiff可以使用tiffutil命令,如下:

tiffutil -cathidpicheck myimage.png myimage@2x.png -out myimage.tiff

2.对于icon的处理

如果你仍然使用以前的方式制作icon,那么你将无法通过Mac app store的审核的,包括你使用Icon Composer制作的icon也是不行的,支持retina显示的icon的步骤如下:

首先,准备以下的图片(图片的尺寸相信你通过后缀都能够明白了):
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png
将这些图片放在同一个文件夹下面,并将该文件夹命名为icon.iconset;

然后使用命令:iconutil -c icns icon.iconset,你就会看到在icon.iconset的同级目录会生成一个icon.icns。