是否可以使用 ImageMagick 渲染多色表情符号?

end*_*nis 5 text rmagick imagemagick emoji

我有一个可能包含表情符号的文本。我想用 RMagick 将它渲染成 JPEG 图像(我也可以直接使用 ImageMagick)。

我只能使用 AndroidEmoji.ttf 渲染单色表情符号,但如果我使用 AppleColorEmoji.ttf,ImageMagick 会渲染询问标志。这是我的方法:

require 'rmagick'
granite = Magick::ImageList.new('granite:')
canvas = Magick::ImageList.new
canvas.new_image(300, 100, Magick::TextureFill.new(granite))

input = "  "
text = Magick::Draw.new
text.font = 'AppleColorEmoji.ttf'
text.pointsize = 20
text.gravity = Magick::CenterGravity
text.annotate(canvas, 0, 0, 0, 0, input)
canvas.write('result.jpg')
Run Code Online (Sandbox Code Playgroud)

是否可以使用 ImageMagick 渲染彩色表情符号,或者是否有其他工具可以提供帮助?

Ras*_*sWL 6

您可以使用 pango 进行文本渲染(从 v6.7.6-3 开始):

convert pango:'Hello! How are you?' example.png

生成此图像(使用 v7.0.8-36)

例子.png

有关如何在 ImageMagick 中使用 pango 的更多详细信息,请参阅https://www.imagemagick.org/Usage/text/#pango


我在 Ubuntu 18.04 上,使用 ImageMagick 7.0.8-36(通过从源代码编译),它看起来有这个配置

Features: Cipher DPC HDRI OpenMP 
Delegates (built-in): bzlib djvu fontconfig freetype jbig jng jpeg lcms lqr lzma openexr pangocairo png tiff wmf x xml zlib
Run Code Online (Sandbox Code Playgroud)

看起来我正在使用 Pangocairo 1.40.14

$ convert -list format | grep -i pango
    PANGO* r--   Pango Markup Language (Pangocairo 1.40.14)
Run Code Online (Sandbox Code Playgroud)


Mar*_*ell 3

我认为你运气不好... ImageMagick 论坛

我想你可以将所有字形保存为 PNG 文件并将它们附加在一起以制作“textspeak 句子”

convert smile.png StupidShoeThing.png arnie.png +append txtspeak.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 感谢您的建议,但是实施起来会很困难,因为我可能在文本中包含表情符号,例如“你好!” 你好吗? (5认同)