使用MiniMagick使用字幕方法编写字符串

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

我正在尝试在图像上写一个字符串。当前,我正在使用MiniMagick,可以调整两个图像的大小并使其重叠,但是当我尝试使用标题编写多行字符串时,最终图像没有任何变化,仍然与以前相同。

这是我当前的代码:

image = MiniMagick::Image.open('template.jpg')
image.combine_options do |c|
  c.background '#0008'
  c.fill '#666'
  c.gravity 'center'
  c.size '100x50'
  c.caption "Lets write some big string here... zzzzz I hope this work =)"
end
image.write('final.jpg')

我的裁判:http://www.imagemagick.org/Usage/annotating/

ImageMagick multiline text and background image

http://www.imagemagick.org/www/command-line-options.html#caption

谢谢所有

ruby imagemagick minimagick
2个回答
1
投票

我结束了使用系统调用的方法来摆脱此问题,这是代码:

Subexec.run "convert -background '#fff0' \\
  -fill '#003300' \\
  -gravity west \\
  -size 560x180 \\
  -pointsize 19 \\
  -font \'#{font_path}\' \\
  caption:\"#{caption}\" \\
  #{photo_path} \\
  +swap \\
  -gravity NorthWest \\
  -geometry +333+113 \\
  -composite #{photo_path}"

0
投票

您需要在MiniMagick中使用Convert。字幕很棒,因为只要您不输入pointsize,它就会根据尺寸进行环绕和调整。语法有点棘手,因为那里没有很多Rails示例。

file = Paperclip::Tempfile.new(["processed", ".jpg"])

MiniMagick::Tool::Convert.new do |img|
  img << file.path
  img.background '#0008'
  img.fill '#666'
  img.gravity 'center'
  img.size '100x50'
  img << "caption: Lets write some big string here... zzzzz I hope this work =)"
 end

model.picture = file
model.save
file.unlink
© www.soinside.com 2019 - 2024. All rights reserved.