На Rails 5.2.1 я пытаюсь использовать MiniMagick для написания текста на изображении. Проблема в том, что он выходит за границы ширины изображения для длинных текстов.
Я пытался использовать draw
, label
, annotation
и caption
методы из здесь , но ни один из них не дал мне правильного результата. caption
даже не добавляет текст к изображению.
Это мой код:
temp_img = MiniMagick::Image.open(url_for(@post.image))
img_width = temp_img[:width]
temp_img.combine_options do |c|
c.gravity 'North'
c.draw "text 0, 0 '#{top_txt}'"
#c.annotate '0,0', "'#{top_txt}'" (same result)
#c.caption "'#{top_txt}'" (same result)
#c.label "'#{top_txt}'" (same result)
c.gravity 'South'
c.draw "text 0, 0 '#{bot_txt}'"
#c.annotate '0,0', "'#{bot_txt}'" (same result)
#c.caption "'#{bot_txt}'" (same result)
#c.label "'#{bot_txt}'" (same result)
c.stroke('#000000')
c.strokewidth 1
c.fill('#FFFFFF')
c.size "#{img_width}x"
c.pointsize '40'
c.font "#{Rails.root.join('public', 'font',
'Franklin_Gothic_Heavy_Regular.ttf')}"
end
Это мой результат:
Самое близкое к решению, которое я видел, это это , но оно слишком грязное.
Может ли быть лучший способ?