我尝试使用标题和/或标签在我的图片上书写多行文字,但它并没有向图片写任何内容。
def self.post_open_ended_response
image = MiniMagick::Image.open("public/text_response_bg.png")
image.combine_options do |i|
i.size "460x"
i.gravity 'center'
i.fill 'white'
i.pointsize '40'
i.caption 'blahblahblah'
# i.label "blahblah fsdfsd fsd fsd fds fsd fds fds"
# i.composite "public/output.jpg"
end
image.write "public/output.jpg"
end
我想使用标题/标签而不是文字的原因是因为我读到imagemagick会神奇地缩放标题/标签的分数。我的文字长度会有所不同,所以我不想对其进行硬编码。
答案 0 :(得分:0)
对于将来可能面临此问题的任何人 - 更新到最新的宝石(目前为4.2.0)。我在4.0.4上遇到了问题:
https://github.com/minimagick/minimagick/issues/191
更新 - 通常只需使用注释 - 它可以工作。如果需要文本操作,可以使用TextHelpers执行此操作。我已经完成了以下多线注释的示例:
def create_og_image
message = word_wrap('This is a test string. ' + @blog.title, line_width: 30).upcase
image = MiniMagick::Image.open(@blog.image.path(:open_graph))
image.combine_options do |c|
#c.label message
c.gravity 'NorthWest'
c.fill 'white'
c.stroke 'white'
c.strokewidth '0'
c.pointsize '70'
c.interline_spacing '10'
c.font "AvantGarde-Book"
#c.size "500x300 label:'#{message}'"
#c.label message
c.annotate '+500+318', message
end
image.write "/xxx/xxx/xxx/public/test_image/test_output.jpg"
end