zoukankan      html  css  js  c++  java
  • PHP Imagick文字加阴影(外发光)

    PHP Imagick文字加阴影(外发光)
    <pre>
    $canvas = new Imagick();
    $canvas->newImage(500, 200, 'white');
    $canvas->setImageFormat('png');

    $text = new Imagick();
    $text->newImage(500, 200, 'none');
    $text->setImageFormat('png');

    $draw = new ImagickDraw();
    $draw->setFillColor(new ImagickPixel('#f00'));
    $draw->setFontSize(50);
    $draw->annotation(100, 60, 'welcome');
    $text->drawImage($draw);

    $draw->setFillColor(new ImagickPixel('#fff'));
    $draw->setFontSize(50);
    $draw->annotation(100, 120, 'welcome');
    $text->drawImage($draw);

    $shadow_layer = $text->clone();
    $shadow_layer->setImageBackgroundColor(new ImagickPixel('#555'));
    $shadow_layer->shadowImage(80, 0.8, 0, 0);
    $shadow_layer->compositeImage($text, Imagick::COMPOSITE_OVER, 0, 0);
    $canvas->compositeImage($shadow_layer, imagick::COMPOSITE_DEFAULT, 0, 0);
    $canvas->writeImage("test_0.jpg"); //直接写入test_0.jpg文件
    header("Content-type: image/{$canvas->getImageFormat()}");
    echo $canvas->getImageBlob();
    </pre>

    ps:
    drawImage $text->drawImage($draw); 这个$draw是文字对象 $text可以是图片可以是空白画布
    setImageBackgroundColor 设置阴影颜色
    shadowImage 第一个参数是透明度0~255 第二个参数就是值越大就是扩散越大 第三和第四就是x和y的阴影位移
    compositeImage 这个是合并图片
    $shadow_layer->compositeImage($text, Imagick::COMPOSITE_OVER, 0, 0 ); //$text合并到$shadow_layer
    $canvas->compositeImage($shadow_layer, imagick::COMPOSITE_DEFAULT, 0, 0); //$shadow_layer 合并到$canvas

  • 相关阅读:
    第三次冲刺--软件工程
    【操作系统】实验四 主存空间的分配和回收
    《构造之法》8、9、10
    实验三 进程调度模拟程序--操作系统
    构建之法读后感
    操作系统作业调度-操作系统
    结对评论—软件工程
    复利计算6.0—软件工程(web版本)
    学习进度条
    第三次冲刺总结
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11872544.html
Copyright © 2011-2022 走看看