ImageMagick cmd в vbs или bat

Вопрос 1:

На вопрос 1: как запустить следующий код в файле bat или файле vbs?

convert *.png -set filename:f "AAAA_%t.png" %[filename:f]

он работает в командной строке, но не работает в .bat, он показывает

convert.exe: missing an image filename `AAAA_[filename:f]' @ error/convert.c/ConvertImageCommand/3144.

Вопрос 2:

Вот картинка:

введите здесь описание изображения

У меня есть B1.png, как я могу преобразовать его в четыре маленьких изображения? Сначала обрезать большой до 16 маленьких кусочков, а затем использовать функцию + добавить 4 раза, чтобы создать 4 маленьких изображения? Есть ли какое-нибудь простое решение? Как я могу добиться этого в пакетном файле или файле vbs?

Большое спасибо.


person user3264634    schedule 03.02.2014    source источник
comment
Какие у вас проблемы? Поместите строку в файл с именем something.bat и запустите код — он выдает ошибку?   -  person unclemeat    schedule 04.02.2014
comment
Привет да, это показывает ошибку. convert.exe: для параметра требуется аргумент «-annotate» @ error/convert.c/ConvertImageCommand/693.   -  person user3264634    schedule 04.02.2014


Ответы (1)


Вопрос 2 можно решить, используя команду convert с оператором crop, чтобы разделить изображение на плитки, а затем команду montage, чтобы воссоединить плитки в другом порядке.

Вам придется настроить размеры плитки (я использовал 77x145), но вот подсказка, как действовать дальше:

  1. создадим 16 тайлов, по одному на каждую ячейку (изображения будут называться output_00.png, output_01.png и так далее):

    convert B1.png -crop 77x145 +repage +adjoin output_%02d.png
    
  2. создайте 4 изображения, по одному для каждой строки, соединяющей плитки в новом порядке (A1,B1,C1,D1) (A2,B2,C2,D2) (A3,B3,C3,D3) (A4,B4,C4,D4) ):

    montage -mode concatenate -tile 4x output_00.png output_04.png output_08.png output_12.png S1.png
    montage -mode concatenate -tile 4x output_01.png output_05.png output_09.png output_13.png S2.png
    montage -mode concatenate -tile 4x output_02.png output_06.png output_10.png output_14.png S3.png
    montage -mode concatenate -tile 4x output_03.png output_07.png output_11.png output_15.png S4.png
    

Если вы хотите использовать эти команды в пакетном файле, вам придется экранировать % в первой команде, поэтому ваш пакетный файл должен выглядеть так:

convert B1.png -crop 77x145 +repage +adjoin output_%%02d.png
montage -mode concatenate -tile 4x output_00.png output_04.png output_08.png output_12.png S1.png
montage -mode concatenate -tile 4x output_01.png output_05.png output_09.png output_13.png S2.png
montage -mode concatenate -tile 4x output_02.png output_06.png output_10.png output_14.png S3.png
montage -mode concatenate -tile 4x output_03.png output_07.png output_11.png output_15.png S4.png

больше информации об кадрировании/плитке здесь

Примечания:

  1. Это решение предполагает, что все ваши «ячейки» имеют одинаковые размеры.
  2. Важно правильно рассчитать размеры тайла (в моем примере -кроп 77x145), иначе может быть сгенерировано более 16 изображений, что приведет к неправильным результатам команд монтажа.
person Andrea    schedule 19.02.2014