Unicode Imagemagick显示拆分的复合字母

Unicode Imagemagick显示拆分的复合字母,unicode,utf-8,fonts,imagemagick,Unicode,Utf 8,Fonts,Imagemagick,当我尝试使用imagemagick绘制文本时,复合字母显示为拆分。例如,单词ഉത്തരം显示为ഉത് തരം中没有空格。 PS:没有空格我不能在这里写,因为它会显示为普通的复合字母。 我的崇高文本编辑器也有这个问题。但在VisualStudio代码中,它工作正常。我尝试的命令如下: magick -size 1040x1310 gradient:tomato-steelblue -font Meera -pointsize 50 -fill white

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

magick      -size 1040x1310     gradient:tomato-steelblue     -font Meera      -pointsize 50     -fill white     -gravity center  -bordercolor White -border 20x20   -draw "text 0,0 'ഉത്തരം'"     image.png
版本:ImageMagick 7.0.10-28 Q16 x86_64 平台:Ubuntu


以前我使用的是2017 build的IM版本6,现在我手动升级到最新版本。仍然
convert--version
显示6,但
magick--version
magick convert--version
显示最新版本。我还使用ImageMagick 6.9.11.28 Q16 Mac OSX Sierra使用
magick convert

尝试了上述命令,下面的标签是:command对我来说很好

也许你的问题是你使用的meera字体。我是从你那儿买的。还要检查您的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



我在文本编辑器中查找了如何键入Option+0D09 Option+0D24 Option+0D4D Option+0D24 Option+0D30 Option+0D02。但是我在编辑器中得到的不是
ഉത്തരം。似乎粘贴到这个盒子里会改变你所看到的

我在文本编辑器中看到的内容与在ImageMagick中渲染时得到的内容相同。您确定代码的第三个字符集,
Option+0D4D
正确吗?我可以通过使用UnicodeChecker(用于Mac)查找utf代码来验证我在文本编辑器中看到的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:


您使用的是什么字体?您的ImageMagick版本和平台是什么?你的ImageMagick命令行是什么?我添加了更多信息。够了吗?看。将文本放入UTF-8兼容的文本文件,并在-draw命令中使用@textfile。这样失败了吗?可能是字形对字体不好,但它仍然给出了相同的旧结果。您可以看到字体详细信息,我在下面使用了代码
magick convert-background lightblue-fill blue-pointsize 48-font-Meera label:@words.utf8 label\u utf8.gif
。我还尝试了
magick convert-size 360x360 xc:white-font“Meera”-pointsize 12-fill black-draw@words.utf8 image.png
,这会引发类似
不一致的绘图原语定义的错误�' @ error/draw.c/RenderMVGContent/4474`图像中的文本不是所需的文本。它应该看起来像
ഉത്തരം和非
ഉത് തരം复制文本“ഉത്തരം" 无法生成正确的字符。使用“utharam”也无法生成正确的字符。您使用的击键是什么?您的字体的真实文件名是什么?您能告诉我如何检查击键。如果我想使用单词
ഉത്തരം
或马来语中的任何单词我都会去打字。我们的语言中有很多复合词。例如
ചോദ്യം ട്രാൻസ്ജെൻഡർ ന് ക്രിക്കറ്റ് കളിക്കാൻ അനുവദിക്കുന്ന പുതിയ നിയമത്തിന് രൂപം നൽകിയ രാജ്യം ആസ്ത്രേലിയ。在这句话中有很多复合字母。只需复制它并在命令中尝试。字体名为Meera,您将从中获得它,或者从中尝试任何其他字体。好的,我得到了。转到底部。有对击键的引用,因此,
ഉത്തരം
Gldljx
请在打开字幕/标题的情况下观看此视频。当您键入字符时,您将获得我所拥有的内容。但当您关闭空格时,它会发生变化。某些内容不正确。查找UTF字符及其生成的字形,您将看到我所拥有的内容是正确的。我在我们的unicode语言支持中创建了一个问题ort,请看。这种字体是AnjaliOldLipi,与meera相同。我要求使用升华,这与imagemagick的情况相同。还有一些信息请参见我在上面的回答中添加的内容。我关闭了空格,因为它是由libre office自动添加的。此外,我认为imagemagick/sublime text3不支持高级文本整形。因为vs代码中修复了该问题。
convert -size 100x31 xc:white -gravity center -pointsize 28 -font /Library/fonts/meera.ttf -fill black -draw "text 0,0 'ഉത്തരം'" result.png
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