我的Heroku应用程序似乎并不想识别任何类型的rmagick字体系列。在下面的情况下,我希望字体是Times New Roman,但它是一些系统默认值。我尝试过更改为Helvetica,它的结果相同 - 通用外观系统字体。
canvas = Magick::Image.read("caption:#{@statement.text}"){
self.size = "300x300"
self.colorspace = RGBColorspace
self.background_color = 'white'
self.font = "TimesNewRoman"
# self.font = "Helvetica"
self.gravity = CenterGravity
self.pointsize = 26
}.first
我已经运行identify -list font
并发现TimesNewRoman和Helvetica都被系统识别,但我的图片拒绝使用它们。
奖励上下文:这是用于在消息/ Facebook Messager / etc中显示的og:image元标记中的预览图像。如果我使用字体系列并将图像直接显示在html页面上,则没有问题,它使用适当的字体。
答案 0 :(得分:1)
以上链中的每条评论:
Wowwwwwwwwww ...显然它就像在你的Heroku应用程序的根目录中添加.fonts
文件夹然后将字体移动到那里一样简单 - 一旦你这样做,你可以直接引用字体将它设置到ImageMagick时......
所以...是
.fonts
| - "SF-Pro-Text-Light.otf
| - "SF-Pro-Text-Regular.otf
和
canvas = Magick::Image.read("caption:#{@statement.text}"){
self.size = "300x300"
self.colorspace = RGBColorspace
self.background_color = 'white'
self.font = "SF-Pro-Text-Light"
self.gravity = CenterGravity
self.pointsize = 26
}.first