我正在尝试在多行上显示一长串文字。
有没有办法让文字自动换行?
<%
image = MiniMagick::Image.open("public/output4.jpg")
image.combine_options do |c|
c.font 'Arial'
c.pointsize '30'
c.gravity "center"
c.size '360x'
c.fill 'white'
c.annotate '0,0', "this is a multi-line text paragraph this is a multi-line text paragraph"
end
image.write "public/output4.jpg"
%>
UPDATE 我还尝试用标题替换注释...并收到以下错误
MiniMagick::Error (Command ("mogrify -pointsize 30 -gravity center -size 360x -fill white caption:this is a multi-line text paragraph this is a multi-line text paragraph /var/folders/1s/dh01tgyn3j39f673v1d_xywc0000gn/T/mini_magick20140103-15012-11w3xtz.jpg") failed: {:status_code=>1, :output=>"mogrify: no encode delegate for this image format `this is a multi-line text paragraph this is a multi-line text paragraph' @ error/constitute.c/WriteImage/1195.\n"}):
答案 0 :(得分:1)
您应该能够为此使用段落启用标题,这样您就可以在需要休息的位置嵌入换行符。
有关标题指令和参数的完整文档,请访问:http://www.imagemagick.org/Usage/text/#caption_paragraphs
编辑:代码示例
问题是您的代码使用的是mogrify实用程序(默认情况下),而不是转换实用程序:
<%
image = MiniMagick::Image.open("public/output4.jpg")
image.combine_options('convert') do |c|
c.font 'Arial'
c.pointsize '30'
c.gravity "center"
c.size '360x'
c.fill 'white'
c.annotate '0,0', "this is a multi-line text paragraph\n this is a multi-line text paragraph"
end
image.write "public/output4.jpg"
%>
答案 1 :(得分:0)
您可以将注释文本拆分为单独的注释行,尽管这些文章相当笨拙,可能不是您正在寻找的内容。
答案 2 :(得分:0)
标题是您正在寻找的选项。 http://www.imagemagick.org/Usage/text/#caption
MiniMagick似乎有一个带有mogrify https://github.com/minimagick/minimagick/issues/191
字幕的错误目前解决此问题的方法是在构建器上使用add命令方法。
image.combine_options do |c|
c.add_command "caption", "a very long caption"
end
你要做的就是首先找出你要在图像上应用的确切mogrify命令,参考imagemagick文档,然后验证minimagick是否正在构建相同的命令。
您可以看到由以下内容构建的命令:
image.combine_options do |c|
c.add_command "caption", "a very long caption"
p c.command # this should give out the command built
end