Imagemagick显示复合字母已拆分

问题描述

当我尝试使用imagemagick绘制文本时,复合字母显示为拆分。例如,单词ഉത്തരം显示ഉത് തരം,其中没有空格。 PS:我不能在这里写空格,因为它将显示为普通的复合字母。
我的Sublime文本编辑器也有此问题。但是在Visual Studio代码中,它可以正常工作。我在下面尝试的命令:

magick      -size 1040x1310     gradient:tomato-steelblue     -font Meera      -pointsize 50     -fill white     -gravity center  -bordercolor White -border 20x20   -draw "text 0,0 'ഉത്തരം'"     image.png
magick      -size 1040x1310     gradient:tomato-steelblue     -font Meera      -pointsize 50     -fill white     -gravity center  -bordercolor White -border 20x20   caption:'ഉത്തരം'     image.png
magick      -size 1040x1310     gradient:tomato-steelblue     -font Meera      -pointsize 50     -fill white     -gravity center  -bordercolor White -border 20x20   label:'ഉത്തരം'     image.png

版本:ImageMagick 7.0.10-28 Q16 x86_64 平台:Ubuntu

以前,我使用的是2017年第6版的IM版本,现在我手动升级为最新版本。 convert --version仍然显示6,但是magick --versionmagick convert --version显示最新的。我还使用magick convert尝试了上述命令。

解决方法

使用ImageMagick 6.9.11.28 Q16 Mac OSX Sierra,以下标签:命令对我来说很好。

也许您的问题是您使用的meera字体。我来自https://www.malayalamfont.com/download.php?id=867。还要检查您的freetype版本,以确保它是最新的。我的版本是2.10.1

convert -size 100x -background white -font /Library/fonts/meera.ttf -fill black label:"ഉത്തരം" result.png

enter image description here

也可以注释和绘制工作:

convert -size 100x31 xc:white -gravity center -pointsize 28 -font /Library/fonts/meera.ttf -fill black -annotate +0+0 "ഉത്തരം" result.png

enter image description here

convert -size 100x31 xc:white -gravity center -pointsize 28 -font /Library/fonts/meera.ttf -fill black -draw "text 0,0 'ഉത്തരം'" result.png

enter image description here

,

我查找了如何在文本编辑器中键入Option + 0D09 Option + 0D24 Option + 0D4D Option + 0D24 Option + 0D30 Option + 0D02。但是我在编辑器中得到的不是ഉത്തരം。似乎粘贴到此框中会更改所看到的内容。

在文本编辑器中看到的内容与在ImageMagick中进行渲染时得到的内容相同。您确定代码的第三个字符集Option+0D4D是正确的吗?通过使用UnicodeChecker(适用于Mac)查找utf代码,我可以验证它们是否在文本编辑器中看到。我注意到这些是UTF-16字符。

convert -size 100x -background white -font /Library/fonts/Meera-Regular.ttf -fill black label:"ഉത്തരം" x1.png

enter image description here

或将我在文本编辑器中输入的内容保存到文件中,然后执行以下操作:

convert -size 100x -background white -font /Library/fonts/Meera-Regular.ttf -fill black label:@hindi.txt x2.png

enter image description here

添加:

以下是您指定的UTF字符代码的标志符号。这些正是我从上面的ImageMagick获得的。

0D09:

enter image description here

0D24:

enter image description here

0D4D:

enter image description here