用脚本来简化iOS美术同学的工作
2013-08-30 23:36
225 查看
问题
我们知道,在iOS开发中,为了使我们的app能够同时支持iPhone的Retina屏幕和普通屏幕,美术同学需要对UI设计稿中的每个元素进行2次切图。苹果要求对图片元素的命名分别为 name.png 和 name@2x.png,带@2x的表示是Retina屏幕的贴图,不带@2x的同名文件为普通屏幕的贴图。我在开发的时候发现很难要求美术同学按照开发的要求来对图片命名。她们通常对于切图的命名是例如 登录按钮大.png ,登录按钮小.png, 登录按钮按下大.png登录按钮按下小.png 这样的形式。于是,对这些文件按照苹果的要求进行重命名就成了我这个码农的一个体力活。
解决方案
有什么方法能减少开发和美术的体力活呢?想到因为 name@2x.png 的图片是 name.png 图片的2整倍,所以,我们完全可以让美术只切@2x的大图,而我们使用脚本来生成小图。于是我写了下面这样的一个脚本,我只需要将所有的大图按照类似 name-1@2x.png , name-2@2x.png 方式命名,然后脚本就会自动帮我生成对应的名为 name-1.png 和 name-2.png的小图。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #! /bin/bash # File name : convertImage.sh # Author: Tang Qiao # # print usage usage() { cat << EOF Usage: convertImage.sh <src directory> <dest directory> EOF } if [ $# -ne 2 ]; then usage exit 1 fi SRC_DIR=$1 DEST_DIR=$2 # check src dir if [ ! -d $SRC_DIR ]; then echo "src directory not exist: $SRC_DIR" exit 1 fi # check dest dir if [ ! -d $DEST_DIR ]; then mkdir -p $DEST_DIR fi for src_file in $SRC_DIR/*.* ; do echo "process file name: $src_file" # 获得去掉文件名的纯路径 src_path=`dirname $src_file` # 获得去掉路径的纯文件名 filename=`basename $src_file` # 获得文件名字(不包括扩展名) name=`echo "$filename" | cut -d'.' -f1` # remove @2x in filename if there is name=`echo "$name" | cut -d"@" -f1` # 获得文件扩展名 extension=`echo "$filename" | cut -d'.' -f2` dest_file="$DEST_DIR/${name}.${extension}" convert $src_file -resize 50% $dest_file done |
1 | convertImage.sh 源文件夹 目标文件夹 |
Tips
imagemagick
如果你运行以上脚本失败,请先用brew 或 port安装 imagemagick。imagemagick是一个相当强大的图象处理库。1 | brew install imagemagick |
检查图片
在使用该脚本一段时间后,我发现美术同学给我的大图的长宽常常不是偶数,这样造成缩小的图就不是原图的整倍数了。为了方便我检查美术给我的图片是否宽高都是偶数,我写了如下检查的脚本,这样就可以检查图片的宽高是否符合要求了。12 | #! /bin/bash |
问题
我在使用以上方法时,发现由于imagemagick压缩比太高,生成的图片如果象素太小,它就会生成索引图片,而不知道何故,少量索引图片在iPhone 3GS上会显示出一条黑线在图片底部。对于这些图片,用photoshop将其模式改成RGB颜色即可。如下所示:用脚本代替体力活是一件很happy的事情,因为你可以用省下来的时间多做一些有意思的事情了。
Have fun !
后记
在发表完这篇文章后,得到了很多反馈。其中李祎同学提到了一个iOS独立开发者的解决思路:http://kevincao.com/2011/08/prepare-png-for-iphone-app/ ,我感觉该博客中提到的方法,或许更加适合美术同学,因为整个操作都是图形化的。所以附在这里,希望对大家有用。
另外,网易杭研院的施强同学推荐了一个用于缩图的软件:http://www.xnconvert.com/ ,据说也能很好的解决以上问题。一并在此推荐给大家作为参考。
Posted by 唐巧 Aug
26th, 2012 iOS
原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
相关文章推荐
- 用脚本来简化iOS美术同学的工作
- 用脚本来简化iOS美术同学的工作
- K2.net中使用脚本,简化工作
- linux 脚本 之 简化工作
- 使用脚本简化工作
- 脚本的最大优势,就是简化工作步骤提高工作效率,你看出来了吗?有没有看到这段代码的作用呢?
- Oracle数据库管理常用的监控脚本------极大的简化运维工作
- 工作6年多的码农ios职位面试总结(续)
- 自动新建工作目录的脚本
- iOS librtmp打包脚本
- iOS国际化——通过脚本使storyboard翻译自增
- 利用IOS提供的tclsh脚本功能实现快速测试
- 谈一谈在工作过程中搜集的.NET小工具小程序 数据库脚本工具 VS2010/2012风格的界面框架
- IOS——简化表格单元的生成
- iOS SDK同时支持模拟器和真机的静态包编译脚本
- 在iOS开发中使用反射减少一些代码工作
- 使用脚本删除ios工程中未使用图片
- PS动作、脚本实际工作中的应用
- IOS工程自动打包并发布脚本实现
- IOS工程自动打包并发布脚本实现