为什么这个 ImageMagick 转换调用没有向我的图像添加居中文本?
Why is this ImageMagick convert call not adding centered text to my image?
我有,在脚本中:
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
我应该怎么做才能让 "Fr." 以我提供的字体大小的大黑字居中?
谢谢,
如果我使用相当于:
,我可以获得所需的结果(到第二个文件)
convert /tmp/fr/12345.png -font /Users/jonathan/link/fr/Verdana.ttf -gravity Center -pointsize 100 label:"Fr." -composite /tmp/fr/12345.new.png
问题是由于 label:
创建了自己的 canvas。让我们从名为 a.png
的绿色图像开始
现在,如果您尝试添加这样的标签:
convert a.png -gravity Center -pointsize 100 label:"Fr." result.png
你会得到两个输出图像 - result-0.png
和 result-1.png
因为,就 ImageMagick 而言,你说过你想要原始图像 (a.png
) 和另一个块canvas 上面有一些字母,你没有说明你想把它放在哪里。
如果您告诉 ImageMagick 将这两个 canvas 像这样并排附加到一张图片中,您将看到您创建的内容
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
我有,在脚本中:
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
我应该怎么做才能让 "Fr." 以我提供的字体大小的大黑字居中?
谢谢,
如果我使用相当于:
,我可以获得所需的结果(到第二个文件)convert /tmp/fr/12345.png -font /Users/jonathan/link/fr/Verdana.ttf -gravity Center -pointsize 100 label:"Fr." -composite /tmp/fr/12345.new.png
问题是由于 label:
创建了自己的 canvas。让我们从名为 a.png
现在,如果您尝试添加这样的标签:
convert a.png -gravity Center -pointsize 100 label:"Fr." result.png
你会得到两个输出图像 - result-0.png
和 result-1.png
因为,就 ImageMagick 而言,你说过你想要原始图像 (a.png
) 和另一个块canvas 上面有一些字母,你没有说明你想把它放在哪里。
如果您告诉 ImageMagick 将这两个 canvas 像这样并排附加到一张图片中,您将看到您创建的内容
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