0

ImageMagick を使用して、サイズ変更、品質の低下など、画像に対するコマンド ライン操作を実行します。

ただし、このスクリプトで問題が発生しました。

SETLOCAL ENABLEDELAYEDEXPANSION
@echo off
REM Make the Modified folder, to store resized images. 
if not exist %CD%\Mod MKDIR %CD%\Mod

REM loop through all files in working directory with extensions of .bin
for /r %CD% %%G in (*.bin) do ( 
  set FILENAME=%%~nG

  echo !FILENAME!.bin conversion beginning...
  echo Beginning conversions...
  echo Convert to TIF

  REM rename the bin file with a .TIF extension. 
  copy !FILENAME!.bin  !FILENAME!.tif
  echo resizing image....
  REM convert the tif and resize it to 25%. This is where it reduces to almost nothing!
  convert !FILENAME!.tif -resize 25% !FILENAME!.tif
  echo Renaming file...
  REM rename file to say it had been modified
  ren !FILENAME!.tif !FILENAME!-mod.tif
  echo Copying file...
  REM copy the file to the Mod directory.
  copy /y !FILENAME!-mod.tif %CD%\Mod
  echo Cleaning up...
  REM cleanup.
  DEL !FILENAME!-mod.tif
  echo Moving on to next file...

)

コマンドラインから画像のサイズを変更するコマンドを実行すると、正常に機能し、画像が推定サイズに縮小されます。スクリプトでは、2500x5000 程度から 25x25 などに縮小することについて、非常に小さなサイズに縮小しています。方法は異なりますが、まったく同じステートメントを実行しているので、これは非常に奇妙です。

最初は for ループが作動していると思っていましたが、途中で一時停止してステップ実行し、その 1 回の実行でサイズを変更しました。小さすぎて先に進めません。

なぜこんなに小さくなっているのですか?どうすれば修正できますか?

編集 1: bin ファイルを変換する理由は、すべての BIN ファイルが実際には何らかの理由で bin 拡張子で名前が変更された TIF ファイルであるためです。実際、それらはイメージです。

4

1 に答える 1

1

25%が25 %%になるように、%を別の%でエスケープする必要があると思います

于 2012-05-23T20:30:09.543 に答える