Vla*_*lov 8 command-line graphics inkscape imagemagick
我需要通过命令行在中心绘制带有文本的图像以进一步放入视频。黑色背景上的简单黄色文本。
我试过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
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
[AVFilterGraph @ 0xf56020] No such filter: 'drawtext'
Run Code Online (Sandbox Code Playgroud)
我尝试安装ivtools并尝试过drawtool,idraw这显然适用于桌面环境。
如何以编程方式在 Ubuntu 中创建带有文本的简单图像?
αғs*_*нιη 19
这个命令怎么样:
convert -background black -size 800x480 -fill "#ff0080" -pointsize 72 -gravity center label:'Ask Ubuntu' output.png
Run Code Online (Sandbox Code Playgroud)

通过使用上面的命令,您可以创建一个空的 .png 图像,其背景颜色为黑色。
-background color
设置背景颜色。
默认背景颜色(如果没有指定或在图像中找到)是白色。
创建的图像大小将为 800x480( width[xheight])。
-size width[xheight][+offset]
设置原始图像的宽度和高度。
-fill color
填充图形基元时使用的颜色。
此选项接受颜色名称、十六进制颜色或数字 RGB、RGBA、HSL、HSLA、CMYK 或 CMYKA 规范。有关如何正确指定颜色参数的说明,请参阅颜色名称。
例如,
-fill blue
-fill "#ff0080"
-fill "rgb(255,0,128)"
Run Code Online (Sandbox Code Playgroud)
将颜色规范括在引号中,以防止 shell 解释“#”或括号。
要打印完整的颜色名称列表,请使用-list color选项。
-pointsize size
PostScript、OPTION1 或 TrueType 字体的点大小。
-gravity type
为各种其他设置和选项设置当前的重力建议。
选项包括:NorthWest、North、NorthEast、West、Center、East、SouthWest、South、SouthEast。使用-list重力获得的完整列表-gravity在您的ImageMagick安装可用的设置。
label:'your Text Here' 将您的文本写入 image.png。
另请参阅更多示例。
如果我们谈论的是外部视频,我会在inkscape 中制作一个简单的SVG 并带有一个占位符字符串,例如OLISTRING,得到我想要的样子,然后在命令行上操作它以替换我的动态文本。并使用Inkscape 对其进行光栅化.
inkscape -z -e intro.png -w 1920 -h 1080 <(sed 's/OLISTRING/My Video!/' drawing.svg)
Run Code Online (Sandbox Code Playgroud)
这种方法的真正好处是,您只受到在 Inkscape 中可以做什么的限制……由于 Inkscape 的渲染引擎,您还可以获得非常清晰的输出。
结果如下:

如此呈现(通过我的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>
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方案:安装 Imagestick:
sudo apt-get install imagemagick
Run Code Online (Sandbox Code Playgroud)
然后我使用了类似的东西:
convert -pointsize 36 -fill red -draw 'text 10,10 "Loh pidr text" ' b.png test1.jpg
Run Code Online (Sandbox Code Playgroud)
然后使用
man convert
Run Code Online (Sandbox Code Playgroud)
查看文档并玩耍。