Инструмент командной строки для создания простых рисунков

Я ищу инструмент командной строки для создания простых рисунков в macOS. Обычно мне нужно нарисовать несколько (очень) простых фигур/символов. Рисовать их с помощью приложений с графическим интерфейсом, таких как GIMP, несколько излишне, и я все равно хочу сделать это в терминале.

Инструмент, который я ищу, может быть оболочкой или программой. В качестве примера предположим, что я хочу нарисовать кнопку «воспроизведение» (что-то вроде сплющенного значка YouTube), я ожидаю что-то вроде интерпретатора:

color 255 0 0
rect 0 0 100 100
color 255 255 255
poly [10 10 10 90 90 50]

или команду вида:

draw -c red -r 0 0 100 100 -c white -p 10 10 10 90 90 50

Хорошо, если я умею рисовать элементарные геометрические фигуры (линии, многоугольники и окружности) и тексты. Поддержка прозрачности является плюсом. Дополнительные функции, такие как слои, не нужны. Порт Linux с последующей самокомпиляцией тоже подойдет. Программное обеспечение должно быть выпущено под лицензией с открытым исходным кодом.

Примечание. Я не ищу малоизвестный интерпретатор языка программирования (например, Braindraw). Я также ожидаю, что это будет быстро , по крайней мере быстрее, чем преобразование приведенного выше сценария в действительную программу Java, затем дождитесь компиляции и запустите его. Кроме того, я хочу выход без потерь. Что-то вроде PNG или даже BMP в порядке. Однако SVG не подходит, потому что мне нужны дополнительные преобразования формата.

Любая помощь приветствуется.

Ответы (3)

Вы можете использовать imagemagick. Он имеет инструмент командной строки, также доступны графические интерфейсы.

Начертить прямоугольник можно так

convert logo: -fill none -stroke black -strokewidth 3 -draw "rectangle 10,10 630,470" logo_rect.png

https://www.imagemagick.org/script/download.php

Вероятно, самым старым и наиболее широко используемым является Graphviz Dot (поищите на этом сайте вопросы, помеченные/отвеченные им , например, этот мой ответ ).

Этот:

graph {  
           a -- b;   
           b -- c;   
           a -- c;   
           d -- c;   
           e -- c;   
           e -- a;   
      } 

рисует это:

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

Цветную (u) красную заливку см. https://graphviz.gitlab.io/_pages/Gallery/directed/crazy.html .

Посмотрите в галерее стрелки, фигуры, все, что только можно пожелать.

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

Для 3D-форм примечательна https://www.allwinedesigns.com/blog/stlcmd .

Он может рисовать кубы, сферы, цилиндры, конусы, торы, нити (цель состояла в том, чтобы предоставить инструмент для 3D-печати). Существует инструмент преобразования, который может масштабироваться равномерно, а также под любым углом. Другой инструмент будет делать пересечения, объединения и различия.

Вывод в формате STL, http://jinjunho.github.io/Madeleine.js/ предоставляет для них открытый исходный код, все средства визуализации JavaScript.