我想创建一个bash脚本,将512x512图标的大小调整为不同的android启动器图标大小。
调整大小后,应使用特定徽标覆盖图像.png以保持徽标像素完美和清晰。
此外,文件名应与图标大小匹配。
我已经创建了一个脚本,但它不是很灵活且非常重复。
如何使其更紧凑(减少复制/粘贴)?
#!/bin/sh
offset_512=27
offset_144=10
offset_96=5
offset_72=5
offset_48=3
offset_36=2
for file in _screens/*.source.png;
do convert $file -monitor
-resize 512x512
_assets/logo-512x512.png
-gravity south
-geometry +0+${offset_512}
-composite ${file%.source.png*}-512x512.png
convert $file -monitor
-resize 144x144
_assets/logo-144x144.png
-gravity south
-geometry +0+${offset_144}
-composite ${file%.source.png*}-144x144.png
convert $file -monitor
-resize 96x96
_assets/logo-96x96.png
-gravity south
-geometry +0+${offset_96}
-composite ${file%.source.png*}-96x96.png
convert $file -monitor
-resize 72x72
_assets/logo-72x72.png
-gravity south
-geometry +0+${offset_72}
-composite ${file%.source.png*}-72x72.png
convert $file -monitor
-resize 48x48
_assets/logo-48x48.png
-gravity south
-geometry +0+${offset_48}
-composite ${file%.source.png*}-48x48.png
convert $file -monitor
-resize 36x36
_assets/logo-36x36.png
-gravity south
-geometry +0+${offset_36}
-composite ${file%.source.png*}-36x36.png
done
当然还有其他方法可以解决这个问题,但想到的是关联数组。我没有与您相同的环境来测试它,但这应该足够接近以完成工作。让我知道它是如何工作的。
declare -A sizes
sizes=([512x512]=27 [144x144]=10 [96x96]=5 [72x72]=5 [48x48]=3 [36x36]=2)
for file in _screens/*.source.png; do
for size in "${!sizes[@]}"; do
convert $file -monitor -resize $size _assets/logo-${size}.png -gravity south -geometry +0+${sizes[$size]} -composite ${file%.source.png*}-${size}.png
done
done