ImageMagick:为什么赢了';这篇文章不能展开来填充吗?

ImageMagick:为什么赢了';这篇文章不能展开来填充吗?,image,imagemagick,imagemagick-convert,Image,Imagemagick,Imagemagick Convert,我正在阅读for标签,如果我指定-size,它会神奇地变大,以填充空间 我想让这篇文章变得尽可能大。我将自己在标题中设置\n字符(如果绝对必要) 我宁愿自动计算\n,但似乎标签是最大的可能(但不支持自动\n),而标题将在适当的地方添加\n(但不支持填充空间的动态大小) 我的目标是基本上获得尽可能大的文本,无论是在1行还是3行,以适应绿色框(在2行红色******之间) 下面是两个例子,说明它是如何保持不变的。绿色只是暂时的,所以我可以调试 以下是我的这篇文章的代码(不包括所有其他内容): 多行

我正在阅读for
标签
,如果我指定
-size
,它会神奇地变大,以填充空间

我想让这篇文章变得尽可能大。我将自己在标题中设置
\n
字符(如果绝对必要)

我宁愿自动计算
\n
,但似乎
标签
是最大的可能(但不支持自动
\n
),而
标题
将在适当的地方添加
\n
(但不支持填充空间的动态大小)

我的目标是基本上获得尽可能大的文本,无论是在1行还是3行,以适应绿色框(在2行红色
******
之间)

下面是两个例子,说明它是如何保持不变的。绿色只是暂时的,所以我可以调试

以下是我的这篇文章的代码(不包括所有其他内容):

多行

-size 290x54 -background green -fill blue -font ArialB -gravity center label:'Join Us Tomorrow\nFor An HVAC Meeting'
我不知道这是否可行,但理想情况下,它应该问“如果标题在一行上,它的最大大小是多少?如果我在单词1后面放一个
\n
,它的最大大小是多少?如果我在单词2后面放一个
\n
,它的最大大小是多少?”。。。然后选择其中最大的一个


在ImageMagick中,通过指定宽度和高度而不是点大小来使用标题。ImageMagick将计算出适当的点大小,以将文本填充到框中。例如:

convert -size 500x200 -background white -font arial -fill black -gravity center caption:"Testing" -bordercolor red -border 1 test1.png

您还可以包括pointsize,只要您的文本对于框的区域不太长

convert -size 500x200 -background white -font arial -fill black -pointsize 48 -gravity center caption:"Testing" -bordercolor red -border 1 test1b.png

但是,如果选择的字体太大,则会出现以下情况:

convert -size 500x200 -background white -font arial -fill black -pointsize 64 -gravity center caption:"This is a title that will be fairly long and I want it to fit nicely" -bordercolor red -border 1 test3c.png

在ImageMagick中,通过指定宽度和高度而不是点大小来使用标题。ImageMagick将计算出适当的点大小,以将文本填充到框中。例如:

convert -size 500x200 -background white -font arial -fill black -gravity center caption:"Testing" -bordercolor red -border 1 test1.png

您还可以包括pointsize,只要您的文本对于框的区域不太长

convert -size 500x200 -background white -font arial -fill black -pointsize 48 -gravity center caption:"Testing" -bordercolor red -border 1 test1b.png

但是,如果选择的字体太大,则会出现以下情况:

convert -size 500x200 -background white -font arial -fill black -pointsize 64 -gravity center caption:"This is a title that will be fairly long and I want it to fit nicely" -bordercolor red -border 1 test3c.png

您的命令对我有效,但有一处更正。显然,pointsize从your主命令泄漏到括号处理中,即使我添加了-尊重括号。因此,解决方案是在括号命令中添加+pointsize。这是我的命令和结果

magick -respect-parenthesis -size 298x248 canvas:white \( 'arrows.png' -resize 300x \) -gravity northwest -geometry +0+140 -compose over -composite -bordercolor '#cccccc' -border 1 -font Arial -fill red -pointsize 22 -gravity north -annotate +0+4 '*************************' -font Arial -fill red -pointsize 22 -gravity north -annotate +0+68 '*************************' -font Arial -fill green -pointsize 15 -gravity south -annotate +0+64 'hvac.com' \( -size 279x55 +pointsize -background green -fill blue -font ArialB -gravity center caption:'test headline' \) -gravity center -geometry +0-82 -compose over -composite  output.png

请注意,我将arrows.png文件放在可以访问它的位置,其级别与发出命令的位置相同。您可以更改它的路径


您的命令对我有效,但有一处更正。显然,pointsize从your主命令泄漏到括号处理中,即使我添加了-尊重括号。因此,解决方案是在括号命令中添加+pointsize。这是我的命令和结果

magick -respect-parenthesis -size 298x248 canvas:white \( 'arrows.png' -resize 300x \) -gravity northwest -geometry +0+140 -compose over -composite -bordercolor '#cccccc' -border 1 -font Arial -fill red -pointsize 22 -gravity north -annotate +0+4 '*************************' -font Arial -fill red -pointsize 22 -gravity north -annotate +0+68 '*************************' -font Arial -fill green -pointsize 15 -gravity south -annotate +0+64 'hvac.com' \( -size 279x55 +pointsize -background green -fill blue -font ArialB -gravity center caption:'test headline' \) -gravity center -geometry +0-82 -compose over -composite  output.png

请注意,我将arrows.png文件放在可以访问它的位置,其级别与发出命令的位置相同。您可以更改它的路径


标签:如果放入,则不会扩展到全宽\n。如果要使其具有全宽和多行,请禁用\n并使用caption:仅指定宽度(无高度)和所需的pointsize。但是如果我希望pointsize更改为适合该框的最大文本,该怎么办?(与文本文档一样,anthony如何填充以适应空间)。有时标题只有3个字,我希望它是巨大的,其他时候它将是5或10个字,我希望它尽可能大,但不是大我添加了2个图像,可能会更好标签:如果您输入,将不会扩展到全宽\n。如果要使其具有全宽和多行,请禁用\n并使用caption:仅指定宽度(无高度)和所需的pointsize。但是如果我希望pointsize更改为适合该框的最大文本,该怎么办?(与文本文档一样,anthony如何填充以适应空间)。有时标题只有3个字,我希望它是巨大的,其他时候它将是5或10个字,我希望它尽可能大,但不是大,我添加了2个图像,可能更好的mm。。这就是我尝试过的,但我得到了这个:——这是我正在使用的代码。它在ruby中,不是imagemagick命令行,而是
stack.do | stack |。。。end
\(…\)
相同:我上面的命令应该对im7使用“magick”而不是“convert”。我使用IM7.0.7.22和magick得到的结果与上面使用IM6和convert得到的结果相同。也许你的Rmagick需要im6而不是im7,或者当你使用im7而不是convert时,你需要在命令中使用magick。我不知道ruby或Rmagick。但是使用ImageMagick 7,您可以安装旧版convert组件,但这将使用较旧的IM6代码。问题在于Ruby/Rmagick是期望IM6还是IM7。即使它与IM7兼容,也可能需要IM7 magick命令而不是IM6转换。如果它可以在convert的旧版模式下使用IM7,那么您必须安装IM7以便它可以使用旧版代码。对于Windows,这是安装时的特殊标志。对于Mac和Unix,正在使用符号链接,并且可能已经存在。您需要与Rmagick developers一起检查arrows.png文件在哪里?它不会显示在你的结果中。是否可以通过您提供的路径访问?请提供该图像,以便测试您的命令。我也没有在您的输出中看到“hvac.com”的文本。你确定你真的在运行那个命令吗?您的输出是来自命令行还是来自Rmagick?奇怪的是有人否决了我的答案!我想知道是什么原因?我的答案怎么了?太糟糕了,人们没有给出他们投反对票的理由。知道原因会很有帮助,这样就不会重蹈覆辙了。嗯。。这就是我尝试过的,但我得到了这个:——这是我正在使用的代码。是红宝石的,不是我的
magick -respect-parenthesis -size 298x248 canvas:white \( 'arrows.png' -resize 300x \) -gravity northwest -geometry +0+140 -compose over -composite -bordercolor '#cccccc' -border 1 -font Arial -fill red -pointsize 22 -gravity north -annotate +0+4 '*************************' -font Arial -fill red -pointsize 22 -gravity north -annotate +0+68 '*************************' -font Arial -fill green -pointsize 15 -gravity south -annotate +0+64 'hvac.com' \( -size 279x55 +pointsize -background green -fill blue -font ArialB -gravity center caption:'test headline' \) -gravity center -geometry +0-82 -compose over -composite  output.png