Вы можете сделать это с помощью оператора -draw
:
convert in.png -fill none -stroke black -strokewidth ${WIDTH} -draw "rectangle ${X1},${Y1} ${X2},${Y2}" out.png
где:
WIDTH
- ширина штриха X1
- координата x левого верхнего угла Y1
- координата y левого верхнего угла X2
- координата x нижнего правого угла Y2
- координата y нижнего правого угла
Так например для вашего другого изображения, которое вы хотите обрезать + изменить размер + преобразовать в PDF, вы можете запустить:
convert out.png -resize 2362x1630 -background white -gravity center -extent 2480x1748 \
-fill none -stroke black -strokewidth 10 -draw "rectangle 20,20 2460,1728" out.pdf
Да, конвейерная передача вывода source
запустит эту часть конвейера в подоболочке, что означает, что любые переменные среды, установленные источником другого файла, не повлияют на среду скрипта.
Пример:
environment.csh
:
setenv string "hello world"
echo 'The environment is now set up'
script.csh
:
#!/bin/csh
source environment.csh | tee output
printf 'string is "%s"\n' "$string"
Результат работы script.csh
будет
The environment is now set up
string: Undefined variable.
Удаление трубы к tee
приведет к выходу
The environment is now set up
string is "hello world"