Как нарисовать изображение с текстом в центре этого через командную строку?

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

Я попробовал FFmpeg путь:

ffmpeg -loop 1 -r 1 -i b.png -b:v 1M -vf "scale=320:240, drawtext=fontfile=/usr/share/fonts/truetype/DejaVuSans.ttf: text='Test Text'" -vcodec mpeg4 -acodec aac preroll.mp4

Который дал мне следующую ошибку:

[AVFilterGraph @ 0xf56020] No such filter: 'drawtext'

Я пытался установить ivtools и попробованный drawtool и idraw которые являются, очевидно, для настольных сред.

Как создать простое изображение с текстом в Ubuntu программно?

8
задан 16 December 2014 в 04:13

4 ответа

Что относительно этой команды:

convert -background black -size 800x480 -fill "#ff0080"  -pointsize 72 -gravity center label:'Ask Ubuntu' output.png

enter image description here

При помощи вышеупомянутой команды Вы создаете пустое изображение .png, которое его цвет фона является черным.

- фон цвет
      выберите цвет фона.
      цвет фона по умолчанию (если ни один не определен или найден в изображении) является белым.

созданный размер изображения будет 800x480 (width[xheight]).

- размер ширина [xheight] [+offset]
      установите ширину и высоту необработанного изображения.

- заливка цвет
      окрасьте для использования при заполнении графического примитива.

Эта опция принимает название цвета, шестнадцатеричный цвет, или числовой RGB, RGBA, HSL, HSLA, CMYK или спецификацию CMYKA. См. Названия цвета для описания того, как правильно определить цветной аргумент.

, Например,

 -fill blue
 -fill "#ff0080"
 -fill "rgb(255,0,128)" 

Включают спецификацию цветов в кавычки для предотвращения "#" или круглых скобок от того, чтобы быть интерпретируемым оболочкой.

Для печати полного списка названий цвета используйте - список цвет опция.

- размер точки размер
      размер точки PostScript, OPTION1 или шрифта TrueType.

- сила тяжести тип
      устанавливает текущее предложение силы тяжести для различных других настроек и опций.

Выбор включает: NorthWest, Север, NorthEast, Запад, Центр, Восток, SouthWest, Юг, SouthEast. Используйте - список сила тяжести для получения полного списка - сила тяжести настройки, доступные в установке ImageMagick.

label:'your Text Here' пишут Ваш текст в image.png.

Также посмотрите больше примеров .

Посмотрите полные параметры командной строки

19
ответ дан 23 November 2019 в 05:21

Если бы мы говорили о внешнем видео, я сделал бы простой SVG в inkscape со строкой заполнителя как OLISTRING, получил бы его, как я хочу, чтобы он посмотрел, тогда управляют этим на командной строке для замены моим динамическим текстом в. И используйте Inkscape для растеризации его.

inkscape -z -e intro.png -w 1920 -h 1080 <(sed 's/OLISTRING/My Video!/' drawing.svg)

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

Вот результат:

enter image description here

, Как представлено от этого (прохождение через моего sed)

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
   width="1920"
   height="1080"
   id="svg2"
   version="1.1"
   inkscape:version="0.48.4 r9939"
   sodipodi:docname="New document 1">
  <defs
     id="defs4" />
  <sodipodi:namedview
     id="base"
     pagecolor="#000000"
     bordercolor="#666666"
     borderopacity="1.0"
     inkscape:pageopacity="1"
     inkscape:pageshadow="2"
     inkscape:zoom="0.35"
     inkscape:cx="375"
     inkscape:cy="520"
     inkscape:document-units="px"
     inkscape:current-layer="layer1"
     showgrid="false"
     inkscape:window-width="1920"
     inkscape:window-height="1130"
     inkscape:window-x="-2"
     inkscape:window-y="-3"
     inkscape:window-maximized="1" />
  <metadata
     id="metadata7">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <g
     inkscape:label="Layer 1"
     inkscape:groupmode="layer"
     id="layer1"
     transform="translate(0,27.637817)">
    <flowRoot
       xml:space="preserve"
       id="flowRoot2985"
       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:72px;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;text-align:center"><flowRegion
         id="flowRegion2987"><rect
           id="rect2989"
           width="1917.1428"
           height="662.85712"
           x="0"
           y="174.28572"
           style="text-anchor:middle;text-align:center;font-size:72px" /></flowRegion><flowPara
         id="flowPara2991"></flowPara></flowRoot>    <flowRoot
       xml:space="preserve"
       id="flowRoot2993"
       style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
       transform="translate(0,192.36218)"><flowRegion
         id="flowRegion2995"><rect
           id="rect2997"
           width="1917.1428"
           height="700"
           x="0"
           y="151.42857" /></flowRegion><flowPara
         id="flowPara2999"
         style="font-size:244px;font-weight:bold;text-align:center;text-anchor:middle;fill:#ffff00;-inkscape-font-specification:Sans Bold">OLISTRING</flowPara></flowRoot>    <flowRoot
       xml:space="preserve"
       id="flowRoot3001"
       style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:Sans;font-style:normal;font-weight:normal;font-size:40px;line-height:125%;letter-spacing:0px;word-spacing:0px"><flowRegion
         id="flowRegion3003"><rect
           id="rect3005"
           width="0"
           height="85.714287"
           x="962.85712"
           y="397.14285" /></flowRegion><flowPara
         id="flowPara3007"></flowPara></flowRoot>  </g>
</svg>
8
ответ дан 23 November 2019 в 05:21

Я нашел решение: установленный Imagestick:

sudo apt-get install imagemagick

И затем я использовал что-то как:

convert -pointsize 36 -fill red -draw 'text 10,10 "Loh pidr text" ' b.png test1.jpg

И затем используют

man convert

, чтобы видеть документацию и играть aroud.

7
ответ дан 23 November 2019 в 05:21

Команда ffmpeg не работала, потому что человечность не имеет ffmpeg, это имеет libav вместо этого .

Попытка ffmpeg -version для подтверждения (возвратится 0.8.something IIRC).

, Если Вы получаете последнюю версию (2.4.3) от , http://ffmpeg.org тогда drawtext будет работать.

-1
ответ дан 23 November 2019 в 05:21

Другие вопросы по тегам:

Похожие вопросы: