我正在使用自定义批处理脚本来制作文件夹中所有PNG图像的缩小副本(33%和66%)。以下是我的代码:
for f in $(find /myFolder -name '*.png');
do
sudo cp -a $f "${f/%.png/-3x.png}";
sudo convert $f -resize 66.67% "${f/%.png/-2x.png}";
sudo convert $f -resize 33.33% $f;
done
除了原始图像为索引图像时,它运行得很好。在这种情况下,图像的缩小版本是RGB(因此甚至比原始图像更大)。
我尝试了几个版本,但都没有起作用。我猜想应该解决这个问题的一个版本是这样的:
for f in $(find /myFolder -name '*.png');
do
sudo cp -a $f "${f/%.png/-3x.png}";
sudo convert $f -define png:preserve-colormap -resize 66.67% "${f/%.png/-2x.png}";
sudo convert $f -define png:preserve-colormap -resize 33.33% $f;
done
但它不起作用。
编辑:
这是更新后的代码,但它仍然不能按照预期工作(请参见附加的图像-左侧是原始大小,右侧是调整大小后的图像):
for f in $(find /myFolder -name '*.png');
do
sudo cp -a $f "${f/%.png/-3x.png}";
numberOfColors=`identify -format "%k" $f`
convert "$f" \
\( +clone -resize 66.67% -colors $numberOfColors -write "${f/%.png/-2x.png}" +delete \) \
-resize 33.33% -colors $numberOfColors "$f"
done
convert image.png -format "%[type]" info: | grep -i Palette
检测调色板图像,如果是调色板图像,则使用-colors 250
来获得最佳的调色板输出图像结果。 - Mark Setchell