php imagick实现文字渐变
参考文档: https://fengkui.net/articles/117
// 实现css
background: linear-gradient(-66deg, rgba(222,162,79,0.9) 0%, rgba(255,236,161,0.94) 39.74609375%, #DEA24F 100%);
public function drawPrice($priceText) { // 创建新的画布对象和透明底图像 $canvas = new \Imagick(); $canvas->newImage(720, 480, "none"); $text = '冯奎博客'; $text_color = '#000000'; $text_size = 80; // 创建新的imagick对象 $im = new \Imagick(); // 创建新图像。这将用作填充图案 $gradual_change = 100; $im->newPseudoImage($gradual_change, $gradual_change, "gradient:rgba(222,162,79,0.9)-rgba(255,236,161,0.94)-rgba(222,162,79,1)"); //$im->rotateimage("rgba(255, 255, 255, 0)", -60); // 创建imagickdraw对象 $draw = new \ImagickDraw(); // 开始一个叫做“渐变”的新模式 $draw->pushPattern('gradient', 0, 0, $gradual_change, $gradual_change); // 合成图案上的渐变 $draw->composite(\Imagick::COMPOSITE_OVER, 0, 0, $gradual_change, $gradual_change, $im); // 关闭模式 $draw->popPattern(); // 选择字体文件 $draw->setFont("./poster/Alibaba-PuHuiTi-Medium.otf"); // 使用称为“渐变”的图案作为填充 $draw->setFillPatternURL('#gradient'); // 设置字体大小 $draw->setFontSize($text_size); // 添加一些文本到画布上 $draw->annotation(30 + 250 + 30, 260, $text); // 将ImagickDraw绘制到画布上 $canvas->drawImage($draw); // 图像周围1个黑色边框 $canvas->borderImage('black', 1, 1); // 将格式设置为PNG $canvas->setImageFormat('png'); // 输出图像 // header("Content-Type: image/png"); return $canvas; }
正心投入专注