我正在寻找一种解决方案,可以使我免于维护同一图像的两个版本,一个用于视网膜显示器(又名@2x),另一个用于非视网膜显示器。我的目标是仅维护“2x”图像,并使用一些“神奇工具”只需单击一下即可调整所有图像的大小,甚至在 XCode 中构建时效果更好。就像“设置它然后忘记它”。
你能帮助我吗?提前致谢。
如果您只想缩小它们,您可以让 Xcode 在构建过程中自动生成所有非视网膜图像。此示例脚本使用“sips”,因为它是预安装在 Mac 上的。
剧本
#!/bin/bash
# Downsamples all retina [email protected] /cdn-cgi/l/email-protection images.
echo "Downsampling retina images..."
dir=$(pwd)
find "$dir" -name "*@2x.png" | while read image; do
outfile=$(dirname "$image")/$(basename "$image" @2x.png).png
if [ "$image" -nt "$outfile" ]; then
basename "$outfile"
width=$(sips -g "pixelWidth" "$image" | awk 'FNR>1 {print $2}')
height=$(sips -g "pixelHeight" "$image" | awk 'FNR>1 {print $2}')
sips -z $(($height / 2)) $(($width / 2)) "$image" --out "$outfile"
test "$outfile" -nt "$image" || exit 1
fi
done
自动执行
- 创建一个新的“聚合目标”,将其命名为“下采样图像”。
- 将“运行脚本”阶段添加到运行脚本的目标。
- 将“下采样图像”目标添加为应用程序目标中的“目标依赖项”。
Notes
请记住仍将 1x 图像添加到 Xcode 项目中。根据您的需求,您可能还需要:
- 从转换中排除某些文件
- 将生成的文件添加到您的 .gitignore 文件中
- 使用ImageMagick“convert http://www.imagemagick.org/script/convert.php“而不是“sips”。(对于某些索引的 PNG,sips 似乎失败。)
- run optipng http://optipng.sourceforge.net/
ImageMagick 附带一个“compare http://www.imagemagick.org/Usage/compare/如果您想检查下采样版本,请执行“命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)