#batch-file #imagemagick
#пакетный файл #imagemagick
Вопрос:
Я пытаюсь получить ширину и высоту около 50 изображений в качестве переменной, а затем с помощью этой переменной пытаюсь изменить размер одного конкретного изображения, сделав 50 копий с этими размерами. Приведенный ниже код выдает только одно изображение. Пожалуйста, помогите.
setlocal enabledelayedexpansion
%~d1
CD "%~p1"
MD small
FOR %%a in (*.jpg) DO (
identify -format "%%w" imageA.jpg > w.txt
set /p w=<w.txt
identify -format "%%h" imageA.jpg > h.txt
set /p h=<h.txt)
FOR %%a in (*.jpg) DO (
convert imageA.jpg -resize %w%x%h%! small%%a
)
)
Я немного поработал с кодом, и я могу получить копии изображений с именами в указанной папке, но размеры не применяются. как это исправить?
setlocal enabledelayedexpansion
%~d1
CD "%~p1"
MD small
FOR %%f in (*.jpg) DO (
set filename=%%f
identify -format "%%w" %%f > w.txt
set /p w=<w.txt
identify -format "%%h" %%f > h.txt
set /p h=<h.txt)
FOR %%f in (*.jpg) DO (
set filename=%%f
convert imageA.jpg -resize %w%x%h%! small%%~nxf
)
)
Комментарии:
1.
%%w
откуда%%h
взялся и?2. с помощью инструмента imagemagick (идентификация) получил информацию о w (ширина) и h (высота) @npocmaka
3. Ваш вопрос очень трудно понять. Не могли бы вы попробовать и уточнить это. Как вы собираетесь получить размеры 50 изображений в одной переменной? Это массив? Вам нужно 50 копий каждого изображения? Или есть одно конкретное изображение, которое вы хотите скопировать 50? Зачем вам 50 копий — если это копии, все они будут одинаковыми. Я не понимаю!
4. @MarkSetchell — извините за путаницу. Позвольте мне просмотреть, у меня есть img — ImageA.jpg и есть еще один набор из примерно 50 изображений разного размера. Я хочу ImageA.jpg в 50 размерах, полученных из набора из 50 изображений.
5. Вы используете
%%f
для управления внутренним циклом внутри другого цикла, также контролируемого%%f
. Не уверен, что это хорошо…