PHP ImageMagick 怎样设置文字阴影效果

Lasted 2020-12-11 13:27:21

在 PHP ImageMagick 添加文本时不能直接设置字体的阴影,可通过多次调用 annotateImage 函数改变 x 和 y 值模拟实现字体阴影。

下面代码演示怎样实现黑色字体添加有下方白色阴影。如上图所示:

<?php
/*
 * PHP ImageMagick 怎样设置文字阴影效果
 *
 */

$text = 'PHP ImageMagick 怎样设置文字阴影效果';

// 创建背景颜色为 #F48FB1 的 Imagick 对象
$image = new Imagick();
$image->newImage(768, 405, new ImagickPixel('#F48FB1'));

// 创建 Imagick Draw 设置字体大小为 40
$draw = new ImagickDraw();
$draw->setFontSize(40);

// 使用阴影颜色添加文字 白色阴影
// x + 1、y + 1 表示右下方
$draw->setFillColor('#fff'); // 白色
$image->annotateImage($draw, 0 + 1, 0 + 1, 0, $text); 
// x - 1、y - 1 表示左上方

// 添加文字主要颜色 黑色文字
$draw->setFillColor('#000'); // 黑色
$image->annotateImage($draw, 0, 0, 0, $text); 

// 浏览器显示图片
header("Content-Type: image/jpeg");
echo $textImage->getImageBlob();

使用 annotateImage 函数,后面的文字会覆盖前面的文字,所以主文字颜色要位于最后。