【问题标题】:PHP Imagick function to add a labelPHP Imagick 函数添加标签
【发布时间】:2021-05-15 04:48:22
【问题描述】:

我找到了一个 imagemagick 转换命令 here 将文本放入一个较小的框中,即

convert sea.jpg \( -size 173x50 -background none label:"A" -trim -gravity center -extent 173x50 \) -gravity northwest -geometry +312+66 -composite result.png

我正在尝试使用the IMagick library 在 PHP 中复制它 但是,我似乎找不到添加标签的方法? IMagick LabelImage function 实际上并没有在图像上添加标签,而只是在元数据上添加。

我目前的尝试让我到目前为止:

    $label = new Imagick();
    $label->newImage(173,50,new ImagickPixel('transparent'),"png");
    $label->labelImage("Testing 123");
    $label->trimImage(0);
    $label->setGravity(imagick::GRAVITY_CENTER);

但是,如上所述,labelImage 实际上并没有向图像添加任何内容,所以我认为我已经走到了死胡同。 什么是向图像添加标签的好方法,或者一般来说有没有更好的方法可以使用 IMagick 库在框中以缩小以适合的方式向图像添加文本?​​

提前致谢:)

【问题讨论】:

    标签: php imagemagick


    【解决方案1】:

    我已经很久没有使用 IMagick 了,如果不正确会删除它,但我猜你可能想要 newPseudoImagelabel: 作为类型。抱歉,我无法对此进行测试,但类似:

    label = Imagick::newPseudoImage ( 173, 50, "label:The text you want")
    Composite over your background
    

    【讨论】:

    • 我用here 的示例 1 中的一些代码进行了尝试,并创建了一个文件,该文件仅用于创建图像、添加伪图像并返回它。但是这似乎不适用于标签?它适用于伪字符串“plasma:fractal”,它给出了一个漂亮的图像,但“label:Test”不起作用
    • 也许您可以将最新/最好的代码添加到您的问题中?点击其下方的edit 按钮即可开始使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 2019-10-17
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多