问题描述
当我尝试使用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 --version
和magick 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
也可以注释和绘制工作:
convert -size 100x31 xc:white -gravity center -pointsize 28 -font /Library/fonts/meera.ttf -fill black -annotate +0+0 "ഉത്തരം" result.png
convert -size 100x31 xc:white -gravity center -pointsize 28 -font /Library/fonts/meera.ttf -fill black -draw "text 0,0 'ഉത്തരം'" result.png
,
我查找了如何在文本编辑器中键入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
或将我在文本编辑器中输入的内容保存到文件中,然后执行以下操作:
convert -size 100x -background white -font /Library/fonts/Meera-Regular.ttf -fill black label:@hindi.txt x2.png
添加:
以下是您指定的UTF字符代码的标志符号。这些正是我从上面的ImageMagick获得的。
0D09:
0D24:
0D4D: