php imagick添加文字和图片的方法
Imagick添加文字和图片的方法
<pre>
<?php $image = new Imagick(); $image->readImage("/home/www/wordpress/1212/p1_bg.png");
$watermark = new Imagick();
$watermark->readImage("/home/www/wordpress/1212/2.png");
/*$watermark->scaleImage(750, 1206, true); */ //放到等比例按照宽度缩小图片 按照
$image->compositeImage($watermark, imagick::COMPOSITE_OVER, 0, 0);
$text = new Imagick();
$text>newImage(750, 1206, 'none'); 这个是包含文字的外面的容器 类似div
$text>setImageFormat('png');
$draw = new ImagickDraw();
$draw>setFont ('fanzhengdahei.ttf');//设置中文字体 可以解决中文乱码问题
/*$draw->setTextAlignment(1);*/ //1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1
$draw>setFillColor(new ImagickPixel('#f00'));
$draw>setFontSize(50);
$draw->;annotation(100, 60, 'welcome');
$draw>annotation(100, 80, 'welcome1'); //换行写法
$draw1 = new ImagickDraw();
$draw1>setFont ('fanzhengdahei.ttf');//设置中文字体 可以解决中文乱码问题
/*$draw>setTextAlignment(1);*/ //1 从文字的左下方开始计算的 2 从文字中下来计算 3 从文字右下来计算 默认为1
$draw1>setFillColor(new ImagickPixel('#f00'));
$draw1>setFontSize(50);
$draw1>annotation(400, 360, '啦啦啦啦啦啦');
$text->drawImage($draw);
$text->drawImage($draw1);
$image>compositeImage($text, imagick::COMPOSITE_OVER, 0, 0);
w
</pre>
ps:文字之间加间距 直接打空格就行了
每行14个字 分割成数组的写法
<pre> $mubiao = '哦啦啦啦啦阿拉啊啊啊啊啊啊啊啊啊二维违法微风啊我飞挖坟挖坟挖坟服务';
$mubiaocount = mb_strlen($mubiao, 'utf-8');
$fenge = 14;
$jihang = $mubiaocount / $fenge;
$mubiaolist = array();
for ($i = 0; $i <= $jihang; $i++) {
$mubiaolist[] = mb_substr($mubiao, $fenge*$i, $fenge, 'utf-8');
}
</pre>
<pre>ps:imagick实现多行文字
foreach ($mubiaolist as $k => $v) {
$draw1->annotation(170, 580+$k*40, $v);
}
</pre>
ps:多行文字 可以用属性互相覆盖的
<pre>
$draw1->setTextAlignment(3);
$draw1->annotation(350, 600, 'waf');
$draw1->setTextAlignment(1);
$draw1->annotation(177, 540, 'eee');
</pre>
ps:多行 字间距问题都用 单独给文字设置坐标来写为好
php imagick添加文字和图片的方法的更多相关文章
- 一种基于重载的高效c#上图片添加文字图形图片的方法
在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是, ...
- Android GIS开发系列-- 入门季(6)GraphicsLayer添加文字与图片标签
一.GraphicsLayer添加图片 GraphicLayer添加图片Graphic,要用到PictureMarkerSymbol,也是样式的一种.添加代码如下: Drawable drawable ...
- WPF中RichTextBox中添加文字的两种方法
RichTextBox控件不同于TextBox控件,后者可以直接通过其Text属性绑定或者在后台动态添加文字. (一)使用数据绑定 <RichTextBox FontSize="12& ...
- vue中添加文字或图片水印
首先引用warterMark.js,内容如下 'use strict' var watermark = (className,str,type) => { let dom = document. ...
- 在QLabel上同时显示文字和图片的方法
有两种方法. 1.打开UI文件,在界面右键单击QLabel对象,选改变多信息文本 选择图片再确定,左侧问号就是图片. 2.直接在QLabel写富文本 <html><head/> ...
- php 使用GD库压缩图片,添加文字图片水印
先上一个工具类,提供了压缩,添加文字.图片水印等方法: image.class.php <?php class Image { private $info; private $image; pu ...
- python如何在图片上添加文字(中文和英文)
Python在图片上添加文字的两种方法:OpenCV和PIL 一.OpenCV方法 1.安装cv2 pip install opencv-python 2.利用putText方法来实现在图片的指定位置 ...
- python PIL图像处理-图片上添加文字
首先需要安装库pillow cmd安装命令:pip install pillow 安装完后,编写脚本如下: from PIL import Image, ImageDraw, ImageFont de ...
- JAVA中生成、解析二维码图片的方法
JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...
随机推荐
- BZOJ 3561: DZY Loves Math VI 莫比乌斯反演+复杂度分析
推到了一个推不下去的形式,然后就不会了 ~ 看题解后傻了:我推的是对的,推不下去是因为不需要再推了. 复杂度看似很大,但其实是均摊 $O(n)$ 的,看来分析复杂度也是一个能力啊 ~ code: #i ...
- 洛谷P4735题解
若想要深入学习可持久化0-1Trie树,传送门. Description: 给定数列 \(\{a_n\}\) ,支持两种操作: 在数列尾添加一个数 \(x\) ,数列长度变成 \(n+1\) ; 给定 ...
- flag&to do list¬e
没错,今天我要立几个看起来可能会倒的 flag 今天白天 早上除非有特殊情况,不许再看我的博客.不许再看我的qq空间.不许再跟别人聊闲话!!!☑已达成 今天早上一定要坚持做题,把昨天问老师的问题搞懂, ...
- 在CentOS上使用Docker镜像安装Jenkins
1.必须先在CentOS上安装Docker,使用以下命名先在Docker Hub上搜索Jenkins镜像 docker search jenkins 2.下载Jenkins镜像,命令如下:(我下载的是 ...
- adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_ABORTED: User rejected permissions]
一.使用adb 的usb真机调试,安装错误: adb: failed to install app-debug.apk: Failure [INSTALL_FAILED_ABORTED: User r ...
- win10教育版永久激活密钥 win10教育版激活码 win10教育版产品密钥2018(第三种方法亲测可用!)
有没有最新win10教育版激活密钥?win10教育版功能比较全面,增加了一些学术上需要的功能.有用户装了win10教育版,提示需要产品密钥,网上找到的win10教育版永久激活码大多失效,这边小编为大家 ...
- 超实用!手把手教你如何用MSF进行后渗透测试!
在对目标进行渗透测试的时候,通常情况下,我们首先获得的是一台web服务器的webshell或者反弹shell,如果权限比较低,则需要进行权限提升:后续需要对系统进行全面的分析,搞清楚系统的用途:如果目 ...
- Python中的日志记录方案-logging模块&loguru模块
原文链接 原创: 崔庆才 在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样.在使用时我们需要配置一些 Handler.Formatter ...
- boot2docker
boot2docker 简介 boot2docker是解决非linux系统下运行Docker容器不方便的工具 官方介绍 Boot2Docker是在Windows操作系统上运行Docker的唯一方法,现 ...
- django入门8之xadmin引入富文本和excel插件
django入门8之xadmin引入富文本和excel插件 Xadmin引入富文本 插件的文档 https://xadmin.readthedocs.io/en/docs-chinese/make_p ...