2016-07-12 3 views
0

Проблема: я хочу иметь возможность конвертировать несколько изображений одновременно, просто перетаскивая несколько изображений в свой пакетный файл.Множественное преобразование изображения с использованием ImageMagick

Вот мой программный код, потому что я изменения размера каждого изображения:

convert "%1" -thumbnail 50x -unsharp 1.5x1.2+1.0+0.10 "%~p1%~n1" 
convert "%1" -thumbnail 80x -unsharp 1.5x1.2+1.0+0.10 "%~p1%~n1" 
convert "%1" -thumbnail 120x -unsharp 1.5x1.2+1.0+0.10 "%~p1%~n1" 

Каждая из этих строк выше находятся в отдельном файле, так что я сделал еще один файл для вызова каждого из этих файлов. (образовательные цели)

Всех строк ниже, находятся в одном файле:

call ImageConvert120x.bat %* 
call ImageConvert80x.bat %* 
call ImageConvert50x.bat %* 

Теперь, когда я выделяю на несколько изображений, и поместите его на этот файл, в котором он призывающий каждом из них, он преобразует только верхний один. Я хотел бы, чтобы он мог конвертировать несколько изображений за один раз после выделения их и отбрасывания на пакетный файл.

Это должно работать во всех типах файлов.

EDIT:

Я добавил:

for %%i in (%*) do (
call ImageConvert120x.bat %* 
call ImageConvert80x.bat %* 
call ImageConvert50x.bat %* 
) 

Но это займет первое изображение, и попробовать его снова и снова заменить его.

+0

http://stackoverflow.com/a/1244045/2836621 –

ответ

0

for переводит %* (список файлов) в %%i (один файл), так что никакой пользы call ImageConvert120x.bat %* (со списком файлов). Используйте %%i (один единственный файл в то время):

for %%i in (%*) do (
    call ImageConvert120x.bat %%i 
    ... 
) 
+0

Это сработало! Большое вам спасибо за помощь и объяснение. Я был очень смущен, когда меня направили на вопрос, спрашивающий о том же, но используя pngcrush. Большое спасибо. – kgt

Смежные вопросы