我在imageMagick convert
文件中使用PHP
命令为图片添加标题。
这很好用。
但是,标题文本有时会很长,使用长标题文本,当我运行代码时,某些文本会丢失。
有没有办法根据内容大小调整字幕框的大小?
这是我从我的php文件中运行的代码:
<?php
shell_exec("convert input.png \
-gravity Southwest -background '#f48fb0' -splice 0x44 \
-pointsize 30 -fill white -annotate +10+4 'This is a long caption texts that I need to place in the image caption... blah blah blah blah... This is a long caption texts that I need to place in the image caption... blah blah blah blah... ' output.png");
?>
答案 0 :(得分:1)
您可以使用label:或caption:在ImageMagick中将文本创建为自己的图像,并附加到图像的底部或将其合成到图像的底部。前者将选择字体大小,使文本适合图像的宽度。注意我没有指定高度或品脱大小。后者将使用您的pointsize和width(无高度)并根据需要将文本包装成多行。但它使文本部分更高,因为它使用的文本行数。潘戈:是另一种选择。见http://www.imagemagick.org/Usage/text/。如果我追加,那么我使用徽标得到这两个结果:ImageMagick内部图像。
wd=`convert logo: -format "%w" info:`
convert logo: \
\( -size ${wd}x -background '#f48fb0' -gravity center -fill white \
label:'This is a long caption texts that I need to place in the image caption... blah blah blah blah... This is a long caption texts that I need to place in the image caption... blah blah blah blah... ' \) \
-append output2.png
convert logo: \
\( -size ${wd}x -background '#f48fb0' -gravity center -fill white -pointsize 30 \
caption:'This is a long caption texts that I need to place in the image caption... blah blah blah blah... This is a long caption texts that I need to place in the image caption... blah blah blah blah... ' \) \
-append output3.png
答案 1 :(得分:0)
使用我的评论。我修改了我的代码以使用PHP。这应该工作。如果不允许exec,你可以尝试shell_exec。
<?php
$wd = exec("convert input.png -format '%w' info:");
exec("convert logo: \( -size ${wd}x -background '#f48fb0' -gravity center -fill white label:'This is a long caption texts that I need to place in the image caption... blah blah blah blah... This is a long caption texts that I need to place in the image caption... blah blah blah blah... ' \) -append output.png");
?>
或
<?php
exec("wd=`convert input.png -format '%w' info:` \
convert input.png \( -size ${wd}x -background '#f48fb0' -gravity center -fill white label:'This is a long caption texts that I need to place in the image caption... blah blah blah blah... This is a long caption texts that I need to place in the image caption... blah blah blah blah... ' \) -append output.png");
?>
请确保在复制和粘贴时,在wd计算的第一行中结尾\后没有空格。
或者您只需使用PHP getimagesize()来获取wd参数。见http://php.net/manual/en/function.getimagesize.php