我有一个脚本:
os.system('convert -font ' + os.path.join(os.path.dirname(__file__),
'fr/Verdana.ttf') + ' -gravity Center -pointsize 100 label:"Fr."' +
' /tmp/fr/' + filename + ' /tmp/fr/' + filename)
这相当于:
convert -font /Users/jonathan/link/fr/Verdana.ttf -gravity Center -pointsize 100 label:"Fr." /tmp/fr/12345.png /tmp/fr/12345.png
但图像上没有发生任何文字或其他明显的变化。
我也尝试过:
os.system('convert -font ' + os.path.join(os.path.dirname(__file__),
'fr/Verdana.ttf') + ' -gravity Center -pointsize 100 -annotate 0 "Fr."' +
' /tmp/fr/' + filename + ' /tmp/fr/' + filename)
这相当于:
convert -font /Users/jonathan/link/fr/Verdana.ttf -gravity Center -pointsize 100 -annotate 0 "Fr." /tmp/fr/12345.png /tmp/fr/12345.png
我应该做些什么来让#34; Fr。"以我提供的字体大小为中心的大黑色字母?
谢谢,
答案 0 :(得分:2)
问题是由label:
创建自己的画布这一事实引起的。让我们从一个名为a.png
现在,如果您尝试添加如下标签:
convert a.png -gravity Center -pointsize 100 label:"Fr." result.png
你会得到两个输出图像 - result-0.png
和result-1.png
,因为就ImageMagick而言,你说你想要原始图像(a.png
)和另一块画布有一些字母,你没有说明你想放在哪里。
如果您告诉ImageMagick将这两幅画布并排放在这样的单张图片中,您将会看到您创建的内容
convert a.png -gravity Center -pointsize 100 label:"Fr." +append result.png
秘诀是复合原始图像顶部上的标签,同时确保标签的背景是透明的:
convert a.png -gravity Center -pointsize 100 -background none label:"Fr." -composite result.png
答案 1 :(得分:0)
如果我使用等效的:
,我可以获得所需的结果(到第二个文件)convert /tmp/fr/12345.png -font /Users/jonathan/link/fr/Verdana.ttf -gravity Center -pointsize 100 label:"Fr." -composite /tmp/fr/12345.new.png