博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
方便地创建Mac App的iconset(附转换脚本)
阅读量:4110 次
发布时间:2019-05-25

本文共 1422 字,大约阅读时间需要 4 分钟。

自从Apple推出了Retina的MacBook Pro以后,给Mac App设计图标已成为比重越来越重要和有难度的一个活了——因为你需要准备1024x1024分辨率的图标!

当然这些是设计师的活,假设我们的1024x1024分辨率的图标已经设计好了,那么如何应用到项目里去呢?本文便是讲如何在最新的Xcode 4.5下如何用新方式为Mac App创建图标(附上我的转换脚本)。

详细文档可见《》的「Create a Set of Icons That Includes High-Resolution Versions」章节。

自Xcode 4.4开始,它已经开始采用了一种全新的方式去管理和生成App的图标了。开发者只需要准备好从16x16到1024x1024各个尺寸的PNG图,然后就可以交给Xcode去生成专有的.icns格式了。

具体做法很简单,准备好1024x1024分辨率的PNG一份,命名为icon_512x512@2x.png(即Retina的1024x1024),然后,准备好Python和imagemagick(需要用到里面的convert工具去转换图片)。

下面是我的转换脚本:

#!/usr/bin/env pythonimport ossize_list = ['16x16', '32x32', '128x123', '256x256', '512x512']for index, size in enumerate(size_list):    os.system('convert -resize %s icon_512x512@2x.png icon_%s.png' % (size, size))    if index > 0:        os.system('convert -resize %s icon_512x512@2x.png icon_%s@2x.png' % (size, size_list[index - 1]))

创建一个名为myapp.iconset的文件夹,把icon_512x512@2x.png文件放进去,执行我的这个脚本,这样就会根据这个大图标生成这些图片:

  • icon_16x16.png
  • icon_16x16@2x.png
  • icon_32x32.png
  • icon_32x32@2x.png
  • icon_128x123.png
  • icon_128x123@2x.png
  • icon_256x256.png
  • icon_256x256@2x.png
  • icon_512x512.png
  • icon_512x512@2x.png

这些便是一个标准的Mac App所需要的所有尺寸的图片(如果你少了其中一个,Xcode编译就会出警告),实际上icon_16x16@2x.png就是icon_32x32.png,相信你从我的代码中看出来了。

完成了图标文件的准备后,就可以把整个myapp.iconset文件夹拖进Xcode的项目里去了,在myapp-info.plist这个项目属性文件中,新建名为「Icon file」的String类型的属性,值为myapp(不需要iconset的扩展名),这样在Xcode构建项目时,你的App就会带上刚刚拖进去的从16x16到1024x1024的所有图标了。

希望2012年结束前,我能顺利发布我的第一个Mac软件,提前透露一角,图标由设计 :)

转载地址:http://jsosi.baihongyu.com/

你可能感兴趣的文章
eclipse工程目录插件
查看>>
如何在maven中echo一些信息
查看>>
你需要知道的几个理论和定理
查看>>
Hadoop2.2maven编译报MojoExecutionException异常
查看>>
普通Java工程利用注解Spring做周期性任务调度框架搭建
查看>>
linux之top命令
查看>>
Java中Timer的使用
查看>>
Java基于url获取host的两种方法
查看>>
Java获取域名whois的方式
查看>>
eclipse注释模板中设置@author
查看>>
基于Jsoup获取页面的header map,title和keywords
查看>>
互联网爬虫IP列表
查看>>
maven从本地磁盘加载jar的方式
查看>>
Hadoop中map reduce和client共享数据源的方式
查看>>
Hadoop以某目录下的所有目录作为input源方式
查看>>
E-R模型概述
查看>>
数据仓库基本架构描述
查看>>
HTTP Header 概述
查看>>
linux之du和df命令
查看>>
Java正则提取domain(com,org,cn等)
查看>>