我有一个可能包含表情符号的文本。我想用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')
是否可以使用ImageMagick渲染彩色表情符号,还是有其他工具可以提供帮助?
我觉得你运气不好...... ImageMagick forum。
我想你可以将所有字形保存为PNG文件并将它们附加在一起以形成“textpeak句子”
convert smile.png StupidShoeThing.png arnie.png +append txtspeak.png
您可以使用pango进行文本渲染(自v6.7.6-3起):
convert pango:'Hello! 😀How are you?' example.png
生成此图像(使用v7.0.8-36)
有关如何在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
看起来我正在使用Pangocairo 1.40.14
$ convert -list format | grep -i pango
PANGO* r-- Pango Markup Language (Pangocairo 1.40.14)