imagemagick — Использование Pango в PHP Imagick API

Я хочу использовать Imagick API для PHP вместо запуска командной строки в моем PHP-коде.

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?

2

Решение

Просто улучшив ответ 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");
2

Другие решения

Часть панго: \ «Привет, мир! \» это имя файла в ImageMagick. Это означает, что вы должны вызвать readImage, чтобы «прочитать» изображение панго:

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

Это будет работать, только если ImageMagick скомпилирован с поддержкой pango.

0

Прежде всего, вам не нужен объект 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 (что сделано для вас, поскольку вы можете использовать командную строку).

0
По вопросам рекламы [email protected]