2016-11-07 12 views
7

Я ищу некоторую помощь в написании сценария партии, чтобы изменить размер .jpg изображений.Пакетный сценарий для изменения размеров изображений

У меня нет большого опыта работы с пакетными сценариями. Но эта задача будет предварительно сформирована на машине Windows &, поэтому я подумал, что пакетный скрипт может быть хорошим способом.

Я всегда интересовался альтернативными идеями & подходы, или осознание элементов, о которых я не думал.

Ниже я перечислил основные шаги/потребности сценария:

1) The images are located in a folder & are all(or should be) 500 x 
500. 

2) I need copy & past the images to a new folder, where they will be 
resized to 250 x 250. 

3) I then need to repeat step 2 but this time resize to 125 x 125. 
+1

Может быть полезным http://askubuntu.com/questions/135477/how-can-i-scale-all-images-in-a-folder-to-the-same-width –

ответ

6

Если вы хотите сделать это по команде line, возможно, поэтому вы можете автоматизировать его, нет конкретной команды в пакете, которая создана для изображения mani махинация. Вы можете кодировать что-то на JScript или на другом языке и запускать его из командной строки, но зачем это делать, когда есть уже зрелые инструменты, уже доступные для этой задачи?

Я рекомендую ImageMagick.

Получите портативный двоичный файл Windows, затем вы можете использовать magick.exe, чтобы делать то, что вы хотите довольно легко. Например, чтобы изменить размер (вдвое) все PNG изображений в папке 1 в папку 2:

@echo off 
if not exist 2 md 2 
for %%a in (1\*.png) do "path\to\magick.exe" -resize 50x50% "1\%~nxa" "2\%~nxa" 
+1

Поскольку этот ответ был опубликован, Exe ImageMagick теперь называется 'magick.exe', а не' convert.exe'. –

+0

Изменено преобразование в магию – soja

+0

Поскольку вы используете ImageMagick, может быть разумнее использовать правильную процедуру изменения размера ... https://www.imagemagick.org/Usage/resize/#resize_colorspace, что означает использование: для %% a in (1 \ *. Png) do "path \ to \ magick.exe" 1 \% ~ nxa "-colorspace RGB -resize 50x50% -colorspace sRGB" 2 \% ~ nxa " – FarO

6

После установки ImageMagick for Windows, вы можете использовать magick command-line tool, например,

magick.exe mogrify -resize 250x250 -path 250x250/ *.png *.jpg 
magick.exe mogrify -resize 125x125 -path 125x125/ *.png *.jpg 

Примечание: Убедитесь, что команда magick.exe находится в переменной PATH системы и вы указывая на существующих или созданных в СУЖДЕНО папках (например, mkdir 250x250/ 125x125/ в описанном выше случае).

для Linux/Ubuntu, см: How to easily resize images via command-line?

+2

Просто убедитесь, что папка существует до ее запуска. – Jeff

+0

Перед запуском запустите 'mkdir 250x250' и' mkdir 125x125' –

3

вы можете проверить scale.bat, которые могут изменить размер изображения без необходимости установки дополнительного программного обеспечения - он использует только окна встроенные возможности:

@echo off 
set "source_folder=c:\images" 
set "result_folder_1=c:\res1" 
set "result_folder_2=c:\res2" 

for %%a in ("%source_folder%\*jpg") do (
    call scale.bat -source "%%~fa" -target "%result_folder_1%\%%~nxa" -max-height 250 -max-width 250 -keep-ratio no -force yes 
) 

for %%a in ("%source_folder%\*jpg") do (
    call scale.bat -source "%%~fa" -target "%result_folder_2%\%%~nxa" -max-height 125 -max-width 125 -keep-ratio no -force yes 
) 

Проверить тоже this.

+2

Мне нравится это решение лучше всего.Это просто, использует то, что уже есть в системе, а также дает хороший пример того, как взаимодействовать с системой для расширения или выполнения чего-то еще. Отличная работа! – Tiris

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

  • Нет связанных вопросов^_^