【问题标题】:Using Pango in PHP Imagick API在 PHP Imagick API 中使用 Pango
【发布时间】:2015-05-18 01:41:01
【问题描述】:

我想在我的 PHP 代码中使用 Imagick API for PHP 而不是 runnung 命令行。

exec("convert -gravity Center -size 200x200 -fill black -font Arial -pointsize 20 pango:\"Hello World!\" output.png");

对于上述命令,我有以下 Imagick API 代码:

<?php
$img = new Imagick();
$draw = new ImagickDraw();
$draw->setFont("Arial");
$draw->setFontSize(20);
$draw->setGravity( Imagick::GRAVITY_CENTER );
$img->newImage( 200, 200, "black", "png" );

//Pango code for Hello World!

$img->writeImage("output.png");
?>

但我找不到 Pango 的相同方法/选项。你知道如何在 Imagick API 中使用 Pango 吗?

【问题讨论】:

    标签: php imagemagick imagick pango


    【解决方案1】:

    只是通过添加背景颜色来改进 Aite 的答案。

    $img = new Imagick();
    $img->setBackgroundColor(new ImagickPixel('black'));
    $img->setFont("Arial");
    $img->setPointSize(20);
    $img->setGravity( Imagick::GRAVITY_CENTER );
    $img->setImageFormat('jpg');
    
    //Pango code for Hello World!
    $img->newPseudoImage(200, 200, "pango:Hello World");
    
    $img->writeImage("output.png");
    

    【讨论】:

    • 所以我尝试了你的方法,但我一直无法打开图像“Hello World”。有任何想法吗?谢谢!
    【解决方案2】:

    pango:\"Hello World!\" 部分是 ImageMagick 中的“文件名”。这意味着您应该调用 readImage 来“读取”pango 图像:

    $img->readImage("pango:\"Hello World!\"");
    

    这只有在 ImageMagick 编译时支持 pango 时才有效。

    【讨论】:

      【解决方案3】:

      首先,您不需要 ImagickDraw 对象,您只需将选项设置为 Imagick 对象,然后创建/调用新的伪图像(带有pango: 前缀)而不是常规的新图像方法:

      $img = new Imagick();
      $img->setFont("Arial");
      $img->setPointSize(20);
      $img->setGravity( Imagick::GRAVITY_CENTER );
      $img->setImageFormat('jpg');
      
      //Pango code for Hello World!
      $img->newPseudoImage(200, 200, "pango:Hello World");
      
      $img->writeImage("output.png");
      

      抱歉,我不知道如何设置填充颜色,但这是另一个您可能知道如何解决的问题。

      附:你需要确保你已经安装了 pango,并且 imagemagick 库是用 pango 支持构建的(这是为你完成的,因为你可以使用命令行)。

      【讨论】:

        猜你喜欢
        • 2015-04-02
        • 2013-01-12
        • 1970-01-01
        • 2011-05-11
        • 2021-08-10
        • 1970-01-01
        • 1970-01-01
        • 2013-03-26
        • 2012-01-17
        相关资源
        最近更新 更多