2

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

ここに画像の説明を入力

元の画像: 元の画像

スケーリングされたバージョン: スケーリングされた画像

4

2 に答える 2