Я создаю изображение с надписью, используя функцию Imagick::newPseudoImage
следующим образом:
$txt = new Imagick(); $txt->setFont("templates/fonts/Gloria.ttf"); $txt->setGravity(imagick::GRAVITY_CENTER); $txt->newPseudoImage( $image_width, $image_height, "caption:" . $text );
Это черная подпись. Я хочу настроить цвет этой надписи. Я знаю, что есть другие методы рисования текста с помощью Imagick. Мне нужно использовать newPseudoImage
с заголовком вместо этих других методов, потому что он автоматически обертывает и newPseudoImage
текст, чтобы он поместился в данный прямоугольник.
Вы можете использовать colorizeImage . Я надеюсь это тебе поможет:
$im = new Imagick(); $background = new ImagickPixel('none'); $im->setBackgroundColor($background); $im->setFont("somefont.ttf"); $im->setpointsize(72); $im->setGravity(Imagick::GRAVITY_CENTER); $im->newPseudoImage(300, 300, "caption:" . "Put your text" ); $im->colorizeImage('#0000b0',1.0); $im->setImageFormat("png"); header( "Content-Type: image/png" ); echo $im;
colorizeImage имеет проблемы, делая немного более темную версию текста, потому что это смешно смешно с черным. Вместо этого используйте clutImage .
$txt = new Imagick(); $txt->setFont("templates/fonts/Gloria.ttf"); $txt->setGravity(imagick::GRAVITY_CENTER); $txt->newPseudoImage( $image_width, $image_height, "caption:" . $text ); $clut = new Imagick(); $clut->newImage(1, 1, new ImagickPixel('#0000b0')); $txt->clutImage($clut); $clut->destroy();