我正在尝试在图像上写一个字符串。当前,我正在使用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
谢谢所有
我结束了使用系统调用的方法来摆脱此问题,这是代码:
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}"
您需要在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