2017-02-21 6 views
0

я могу термоусадочную некоторые изображения с ImageMagick, используя mogrify в пакетном файле, но я с настройкой каталог назначенияПакетный файл с mogrify в папки

@ECHO OFF 
SET scriptdir=%~dp0 
cd /d %imagedir% 
SET tb="thumbs" 
IF NOT EXIST "%imagedir%"/%tb% MKDIR "%imagedir%"/%tb% 
FOR %%a in (*.tif) do (
mogrify -resize 42x42 -format jpg -quality 100 %%a 
move %%a %imagedir%/%tb% 
) 

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

+0

Поскольку вы используете пакетный файл, я предполагаю, что вы находитесь в Windows. Но вы написали все свои пути, чтобы использовать ForwardSlash. Windows использует BackSlash для разделения путей. – abelenky

+0

Я запускаю Win 7, который позволяет двунаправленную косую черту или так выглядит cd/windows -> C: \ windows> –

+0

Это не значит, что это правильно или что сборка Win32 Mogrify будет принимать неправильные косые черты. – abelenky

ответ

1

Просто добавьте -path XYZ в вашу команду mogrify получить ImageMagick записать выходные файлы в каталоге XYZ. Например:

mkdir results 
mogrify -path results -resize ... inputfile.jpg 

Весь смысл mogrify хотя в том, что вам не нужен цикл, вы просто делаете все файлы на одном дыхании:

mogrify -path results -format jpg -resize 42x42 *.tif 
+0

FOR %% a in (* .tif) do (mogrify -path thumbs -resize 42x42 - формат jpg -quality 100 %% a) ничего не делает –

+0

Вы сначала создали подкаталог 'thumbs'? Кроме того, какую версию вы используете? –

+0

Создайте первую проверку каталога. ImageMagick версия 6.9.3 –

0

вариант использования -write filename, документируется как: write images to this file

mogrify -resize 42x42 -format jpg -quality 100 -write %imagedir%\%tb%\%%a %%a 

Я использовал %imagedir%\%tb%\%%a полностью указать имя выходного файла , и я сменил косые черты на обратную косую черту.

+0

mogrify.exe: невозможно открыть изображение '/ thumbs ': Permission denied @ error/blob.c/OpenBlob/2702. –

+0

Почему вы используете косую черту ('/') с пакетными файлами и Windows, которая использует обратную косую черту ('\\')? – abelenky

+0

Косые черты, как правило, работают очень хорошо во всем моем опыте, возвращаясь к раннему DOS 2.x дням. – tripleee