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-&gt;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 &lt;= $jihang; $i++) {
$mubiaolist[] = mb_substr($mubiao, $fenge*$i, $fenge, 'utf-8');
}
</pre>
<pre>ps:imagick实现多行文字
foreach ($mubiaolist as $k =&gt; $v) {
$draw1-&gt;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添加文字和图片的方法的更多相关文章

  1. 一种基于重载的高效c#上图片添加文字图形图片的方法

    在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是, ...

  2. Android GIS开发系列-- 入门季(6)GraphicsLayer添加文字与图片标签

    一.GraphicsLayer添加图片 GraphicLayer添加图片Graphic,要用到PictureMarkerSymbol,也是样式的一种.添加代码如下: Drawable drawable ...

  3. WPF中RichTextBox中添加文字的两种方法

    RichTextBox控件不同于TextBox控件,后者可以直接通过其Text属性绑定或者在后台动态添加文字. (一)使用数据绑定 <RichTextBox FontSize="12& ...

  4. vue中添加文字或图片水印

    首先引用warterMark.js,内容如下 'use strict' var watermark = (className,str,type) => { let dom = document. ...

  5. 在QLabel上同时显示文字和图片的方法

    有两种方法. 1.打开UI文件,在界面右键单击QLabel对象,选改变多信息文本 选择图片再确定,左侧问号就是图片. 2.直接在QLabel写富文本 <html><head/> ...

  6. php 使用GD库压缩图片,添加文字图片水印

    先上一个工具类,提供了压缩,添加文字.图片水印等方法: image.class.php <?php class Image { private $info; private $image; pu ...

  7. python如何在图片上添加文字(中文和英文)

    Python在图片上添加文字的两种方法:OpenCV和PIL 一.OpenCV方法 1.安装cv2 pip install opencv-python 2.利用putText方法来实现在图片的指定位置 ...

  8. python PIL图像处理-图片上添加文字

    首先需要安装库pillow cmd安装命令:pip install pillow 安装完后,编写脚本如下: from PIL import Image, ImageDraw, ImageFont de ...

  9. JAVA中生成、解析二维码图片的方法

    JAVA中生成.解析二维码的方法并不复杂,使用google的zxing包就可以实现.下面的方法包含了生成二维码.在中间附加logo.添加文字功能,并有解析二维码的方法. 一.下载zxing的架包,并导 ...

随机推荐

  1. css实现input文本框的双边框美化

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  2. ES6 String和Number扩展

    一.String 扩展 ①传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6 又提供了三种新方法. includes():返回布尔值,表示是否 ...

  3. http 缓存机制简介

    我们应该从两个角度来看http的缓存:缓存控制 和 缓存校验.缓存控制:控制缓存的开关,用于标识请求或访问中是否开启了缓存,使用了什么样的存方式.缓存校验:如何校验缓存,缓存的有效期,如何确定缓存是最 ...

  4. npm安装插件怎么判断是--save 还是--save--dev

    npm敲到一半的时候发现:诶 这个到底是-g呢还是--save还是--save-dev呢 1.首先要先了解package.json 在Node.js中,模块是一个库或框架,也是一个Node.js项目. ...

  5. c# async,await, 委托函数

    1.c#的异步实现,之前代码编写大都开几个线程. 现可以使用“async+await”方式实现异步(具体不详细介绍,暂且止在会用,仅仅是c#更新史上一个工具): static void Main(st ...

  6. 记一次netty http server给客户端返回reset包排除

    类似文章:解决用netty去做web服务时,post长度过大的问题 现象:当客户端给server发送的请求体较大时,服务直接给客户端返回reset包. tcpdump: 应用还没有完全收上去,就clo ...

  7. DesktopSharing<转>

    https://github.com/PHZ76/DesktopSharing/tree/e1543975576e6c4fc5c2404b2f4c9c99c0350bd3 git:https://gi ...

  8. python windows下安装pip及rarfile

    python之所以被广泛使用,倒不见得是本身语法简单,而是而nodejs/javascript一样把三方库的依赖管理简化了,而不用和java一样非得通过maven管理,而且还得打包后在classpat ...

  9. php laravel 环境搭建

    最近上一个新项目,时间比较紧,为了满足业务需求,没有办法,只有上我大 php 了,找了一个带些基础的数据结构,用的是 laravel 搭建的,然后寻坑就开始了,先是构建 docker 镜像就坑了,然后 ...

  10. 同一个交换机 局域网内 内网IP ping不通为什么 没关闭windows防火墙

    同一个交换机 局域网内 内网IP  ping不通为什么  没关闭windows防火墙