カスタム バッチ スクリプトを使用して、フォルダー内のすべての 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