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
PHP Imagick文字加阴影(外发光)的更多相关文章
- android 仿小米icon处理,加阴影和边框
本人自己在做一个launcher,所以须要处理icon,加阴影和边框等.这仅仅是一种处理方法,其它的处理方法类似. 源码: https://github.com/com314159/LauncherI ...
- 向输出到console的文字加样式
Chrome 控制台新玩法-向输出到console的文字加样式 有兴趣的同学可以文章最后的代码复制贴到控制台玩玩. Go for Code 在正常模式下,一般只能向console 控制台输出简单的 ...
- WPF控件加阴影模糊问题
原文:WPF控件加阴影模糊问题 不能直接把阴影加在控件上 应该加在控件的同级兄弟节点上,覆盖在底下就不会模糊了
- ios 动画的时候 如果加阴影 会卡顿的
记录一下今天某群的聊天记录,一些算是经验吧,以后有用的.呵呵~ 动画的时候 如果加阴影 会卡顿的 A 10:59:13 _toView.layer.shadowColor ...
- Chrome 控制台新玩法-向输出到console的文字加样式
Chrome 控制台新玩法-向输出到console的文字加样式 有兴趣的同学可以文章最后的代码复制贴到控制台玩玩. Go for Code 在正常模式下,一般只能向console 控制台输出简单的文字 ...
- Android5.0以后,materialDesign风格的加阴影和裁剪效果
5.0以后,materialDesign风格,出现了立体这种概念,高光,阴影,也就是Z轴,凸显层次:同时,裁剪view也变得方便简单了很多. 1,先说说阴影的实现. 方案1:在xml中设置 xml中设 ...
- css3-11 如何设置文字的阴影
css3-11 如何设置文字的阴影 一.总结 一句话总结:text-shadow属性.text-shadow:3px 3px 3px #f0f; 1.text-shadow属性的参数依次是什么意思? ...
- 给WPF文字加多条修饰线
原文:给WPF文字加多条修饰线 这是上篇WPF中的文字修饰--上划线,中划线,基线与下划线 最后留给朋友思考的问题. 效果图: XAML代码:<Page xmlns="http://s ...
- php imagick 文字居中的方法
php imagick 文字居中的方法<pre> public function getwenzinfo($nickName) { $nickNamelen = mb_strlen($ni ...
随机推荐
- Ajax无法访问回调函数seccess问题
1,后台返回的数据是标准json格式,前端dataType也是josn, 2,没有跨域访问, 但是一直只执行error方法, 原因出在: 应设置为button按钮,指明类型为button
- java 8 学习三(Stream API)
集合讲的是数据,流讲的是计算. 流的数据处理功能支持类似于数据库的操作,以及函数式编程语言中的常用操作,如filter. map. reduce. find. match. sort等. 流操作可以顺 ...
- Ice Igloos Gym - 101480I (暴力技巧)
Problem I: Ice Igloos \[ Time Limit: 10 s \quad Memory Limit: 512 MiB \] 题意 给出\(n\)个圆,给出每个圆的坐标\(x\). ...
- LeetCode 1091. Shortest Path in Binary Matrix
原题链接在这里:https://leetcode.com/problems/shortest-path-in-binary-matrix/ 题目: In an N by N square grid, ...
- CF1245D: Shichikuji and Power Grid
CF1245D: Shichikuji and Power Grid 题意描述: 给定\(n\)个点\((n\leq2000)\),在第\(i\)个点上建立一个基站需要\(c_i\)的代价,连接两个点 ...
- ava js 测试框架基本试用
随着js 越来越强大,日常使用中关于js 的问题也就越突出了,我们需要关注的点也就不能只像以前那样 只编写简单的功能实现,我们同时也需要关注js 的健壮性,测试就是其中一个比较重要的环节,以下 是av ...
- 使用overnightjs typescript 注解开发expressjs 应用
overnightjs 提供了基于注解的expressjs应用开发,包含了比较全的express 开发支持,使用简单,以下是一个简单的试用 项目准备 项目使用pkg 进行了打包处理 初始化 yarn ...
- 常用方法 DataTable转换为Entitys
备注:摘自网上 有附地址 public static List<T> DataTableToEntities<T>(this DataTable dt) where T : c ...
- [原创]STAR法则
[原创]STAR法则 STAR法则是情境(situation).任务(task).行动(action).结果(result)四项的缩写. STAR法则是一种常常被面试官使用的工具,用来收集面试者与工作 ...
- [技术博客] win10下vagrant+centos7 rails虚拟开发机配置流程
由于少昂早年已经在此踩过坑了,因此在这里,我们现在直接贴上他早年的博客链接:https://www.cnblogs.com/HansBug/p/7403306.html