我正在寻找一种解决方案,可以让我免于维护同一图像的两个版本,一个用于Retina显示器(又名@ 2x),另一个用于非Retina显示器.我的目标是仅维护"2x"图像,并且只需单击一下即可调整所有这些图像的"神奇工具",甚至可以在XCode中构建.就像"设置并忘记它".
你能帮助我吗?提前致谢.
nsc*_*hum 28
如果您只想缩小它们,可以让Xcode在构建过程中自动生成所有非视网膜图像.此示例脚本使用"sips",因为它预装在Mac上.
#!/bin/bash
# Downsamples all retina ...@2x.png 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
Run Code Online (Sandbox Code Playgroud)
请记住仍然将1x图像添加到Xcode项目中.根据您的需要,您可能还需要:
如果要检查缩减采样版本,ImageMagick会附带" 比较 "命令.
这是一个很老的线程,但我偶然发现它,所以我可以详细说明自动维护多个大小.
性能方面,我不确定使用自动缩减是一个明智的想法,因为它必须实时完成,但它应该适用于更简单的情况.
现在,要@2x
自动转换这些图像,一个简单的bash脚本应该可以解决这个问题.l4u的解决方案可行,但对于需要更简单且不想安装的人来说guard
,这也有效(你仍然需要安装ImageMagick):
for f in $(find . -name '*@2x.png'); do
echo "Converting $f..."
convert "$f" -resize '50%' "$(dirname $f)/$(basename -s '@2x.png' $f).png"
done
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11043 次 |
最近记录: |