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

  • 相关阅读:
    thinkphp 事物回滚
    文字超出部分以省略号隐藏
    js倒计时
    js 日期转为时间戳
    jquery 获取url地址参数
    spreadjs 自定义菜单事件
    spreadjs 点击事件
    spreadjs 自定义上传文件单元格
    spreadjs 小记
    Json数组排序
  • 原文地址:https://www.cnblogs.com/newmiracle/p/11872544.html
Copyright © 2011-2022 走看看