【问题标题】:Can't fit text to image with ImageMagick无法使用 ImageMagick 使文本适合图像
【发布时间】:2020-03-04 13:32:49
【问题描述】:

我需要使我的文字适合图像。我的图像有不同的尺寸,所以我不能设置恒定的点尺寸。

我的命令看起来像这样

convert 
    -fill white
    -font Winter Calligraphy
    -size `${options.width}x${options.height}`
    label: KJHGFD
    test.gif

在输出中,您可以看到图片顶部的裁剪部分。

输出:

  • 我只有这个字体有问题,其他字体效果很好。
  • 我尝试在顶部添加白色边框。不幸的是,这只会将损坏的文本移到底部。
  • 我无法更改区域大小。
  • 文本必须填充尽可能多的空间。
  • 我需要使用 Winter Calligraphy 字体

【问题讨论】:

  • 你试过caption:协议而不是label:吗?我相信caption: 编码器会尝试减小点大小以适应画布。
  • 我试了,没有任何改变。
  • 您的引用完全错误!您使用的是 Windows、macOS 还是 Linux?
  • 我在 linux ubuntu 18.04 上。

标签: graphics fonts imagemagick


【解决方案1】:

这是获得所需结果的一种略显笨拙的方法。步骤如下:

  • 首先,使用 caption:ImageMagick 告诉您它将用于填充您的文本框并提取该信息的点大小

  • 创建一个两倍宽和两倍高的画布,并在其中绘制文本 - 它一定适合!

  • 现在修剪掉文本周围多余的背景,这样你就有了包含文本的绝对最小边界框

  • 将结果调整为您想要的大小。


#!/bin/bash

# Width, height and text
w=600
h=150
text="KJHGFD"

# Get pointsize ImageMagick thinks is good
pointsize=$(convert -gravity center -background black -fill white -size ${w}x${h} \
    -font "Winter Calligraphy.ttf" caption:"$text" -format "%[caption:pointsize]" info:)

echo ImageMagick likes pointsize: $pointsize

# So draw text in that size on larger canvas, trim to bounds of letters and resize to desired size
wb=$((w*2))
hb=$((h*2))
convert -gravity center -fill white -size ${wb}x${hb} xc:black \
    -font "Winter Calligraphy.ttf" -pointsize $pointsize -annotate 0 "$text" \
    -trim +repage -resize ${w}x${h}\! result.png

【讨论】:

  • 我明天去看看。看起来很棒!
【解决方案2】:

这适用于 ImageMagick 6.9.10.97 Q16 Mac OSX。我已将-background white -fill black -gravity center 添加到您的命令中。

convert -background white -fill black -font "/library/fonts/Winter Calligraphy.ttf" -size 569x196 -gravity center label:KJHGFD test.gif


【讨论】:

  • 看左边的K字母。它被裁剪了。你可以用较小的高度检查它吗?然后你可能会收到这个错误(和我的例子一样)。
  • 某些字体的指标不好。有可能是这种情况。如果您想进一步了解它,我建议您在 Imagemagck 话语服务器错误表单上发布imagemagick.org/discourse-server
猜你喜欢
  • 2017-07-12
  • 2011-10-24
  • 2017-03-10
  • 1970-01-01
  • 2020-11-12
  • 2021-04-18
  • 1970-01-01
  • 2020-11-29
  • 2011-09-19
相关资源
最近更新 更多