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

问题描述 投票:2回答:2

我有一个可能包含表情符号的文本。我想用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渲染彩色表情符号,还是有其他工具可以提供帮助?

text imagemagick rmagick emoji
2个回答
3
投票

我觉得你运气不好...... ImageMagick forum

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

convert smile.png StupidShoeThing.png arnie.png +append txtspeak.png

enter image description here


1
投票

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

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

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

example.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

看起来我正在使用Pangocairo 1.40.14

$ convert -list format | grep -i pango
    PANGO* r--   Pango Markup Language (Pangocairo 1.40.14)
© www.soinside.com 2019 - 2024. All rights reserved.