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. 恕我直言,在座的各位根本不会写 Java!

    恕我直言,在座的各位根本不会写 Java! java思维导图 作者:Lrwin,软件架构师. 导语 自 2013 年毕业后,今年已经是我工作的第 4 个年头了,总在做 Java 相关的工作,终于有时间 ...

  2. 关于windows下的libtorch配置

    关于windows下的libtorch配置 1.环境 Windows service 2012 R2/Windows10 Cuda 9.0 OpenCV3.4.1 Libtorch1.0 VS2017 ...

  3. lintcode-720重排带整数字符串

    题目描述: 给一包含大写字母和整数(从 0 到 9)的字符串, 试写一函数返回有序的字母以及数字和. 样例 给出 str = AC2BEW3, 返回 ABCEW5字母按字母表的顺序排列, 接着是整数的 ...

  4. js svg转图片格式

      1.情景展示 闲来无事的时候,发现chrome扩展程序里面有图像,本想下载下来,却发现文件格式是svg格式,如何将svg文件改成图片格式? chrome-extension://jlgkpaici ...

  5. 《京东上千页面搭建基石——CMS前后端分离演进史》阅读笔记

    一.背景 CMS即内容管理系统,目的是用于快速进行网站建设或者网页开发. 对于京东网站部门来说,CMS核心目的是用来快速开发和上线各种页面,诸如各种垂直频道页. 二.CMS核心目的 进行数据和模板的统 ...

  6. 在 Mac、Linux、Windows 下Go交叉编译

    Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下. Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED= ...

  7. Spring(二十三):Spring自动注入的实现方式

    注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解包含:Autowrired/Resource/Qualifier/Service/Controller/Repository/C ...

  8. MyBatis(六):Mybatis Java API编程实现一对多、一对一

    最近工作中用到了mybatis的Java API方式进行开发,顺便也整理下该功能的用法,接下来会针对基本部分进行学习: 1)Java API处理一对多.多对一的用法: 2)增.删.改.查的用法: 3) ...

  9. linux查找历史命令

    1.ctr+r  输入搜索关键词 2.&history 3.上箭头翻看

  10. Jenkins 使用 SonarQube 扫描 Coding

    Jenkins 使用 SonarQube 扫描 Coding   系统环境: Jenkins 版本:2.176 SonarQube 版本:7.4.0 一.SonarQube 介绍 1.SonarQub ...