【问题标题】:Is it possible to render multi-coloured emojis with ImageMagick?是否可以使用 ImageMagick 渲染多色表情符号?
【发布时间】:2015-09-09 08:51:27
【问题描述】:

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

【问题讨论】:

  • 嘿@endenis,你运气好吗?
  • @agamov 目前还没有。 :( 我通过将文本图像与表情符号图像合并来制作一个 hacky 临时解决方案(我用正则表达式拆分它们)。
  • 据我所知,您只能在 ImageMagick 中使用 PANGO。

标签: text imagemagick rmagick emoji


【解决方案1】:

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

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

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

有关如何将 pango 与 ImageMagick 一起使用的更多详细信息,请参阅 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)

【讨论】:

  • 您使用的是什么操作系统?你的 imagemagick 是如何配置的?在启用 pango、fontconfig 和 freetype 的 OSX High Sierra 上尝试此操作,并且表情符号为空
  • @Ruxton 用请求的信息更新了我的答案:)
  • 我在 OSX 上是这些以上的几个点发布,它仍然呈现空白:(
【解决方案2】:

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

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

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

【讨论】:

  • 感谢您的建议,但是由于我可能在文本中包含表情符号,例如Hello! ?How are you?,因此很难实施。
猜你喜欢
  • 2013-06-25
  • 1970-01-01
  • 2020-02-26
  • 2014-07-27
  • 2019-04-30
  • 1970-01-01
  • 2021-09-16
  • 2014-04-02
  • 2020-05-05
相关资源
最近更新 更多