class wordsOnImg {

/**

* a.合成图片信息 复制一张图片的矩形区域到另一张图片的矩形区域

* @param [type] $bg_image [目标图]

* @param [type] $sub_image [被添加图]

* @param [type] $add_x [目标图x坐标位置]

* @param [type] $add_y [目标图y坐标位置]

* @param [type] $add_w [目标图宽度区域]

* @param [type] $add_h [目标图高度区域]

* @param [type] $out_image [输出图路径]

* @return [type] [description]

*/

public

function image_copy_image($bg_image, $sub_image, $add_x, $add_y, $add_w, $add_h, $out_image) {

if ($sub_image) {

$bg_image_c = imagecreatefromstring(file_get_contents($bg_image));

$sub_image_c = imagecreatefromstring(file_get_contents($sub_image));

imagecopyresampled($bg_image_c, $sub_image_c, $add_x, $add_y, 0, 0, $add_w, $add_h, imagesx($sub_image_c), imagesy($sub_image_c));

//保存到out_image

imagejpeg($bg_image_c, $out_image, 80);

imagedestroy($sub_image_c);

imagedestroy($bg_image_c);

}

}

/**

* b.生成文字图片并插入广告图中

* @param [type] $filename [生成的图片]

* @param [type] $bg_image [背景图片展览]

* @param [add_x]$add_x [文字增长的位置x轴]

* @param [add_y]$add_y [文字增长的位置y轴]

* @param [type] $text [文字内容]

* @param [type] $font [文字大小]

* @param [type] $size [文字画布的宽]

* @param [type] $red [红]

* @param [type] $grn [绿]

* @param [type] $blu [蓝]

*/

public

function create_text($bg_image, $add_x, $add_y, $filename, $text, $font, $size, $red, $grn, $blu) {

$rot = 0; // 旋转角度

$width = 0; //宽度

$height = 0; //高度

$offset_x = 0; //x偏移

$offset_y = 0; //y偏移

$bounds = array();

//$text = autowrap($size, 0, $font, $text,$width_f); // 自动换行处理

/** [字体大小] [角度] [字体名称] [字符串] [预设宽度] */

// 肯定边框高度.

$bounds = ImageTTFBBox($size, $rot, $font, "W");

if ($rot < 0) {

$font_height = abs($bounds[7] - $bounds[1]);

} else if ($rot > 0) {

$font_height = abs($bounds[1] - $bounds[7]);

} else {

$font_height = abs($bounds[7] - $bounds[1]);

}

// 肯定边框高度.

$bounds = ImageTTFBBox($size, $rot, $font, $text);

if ($rot < 0) {

$width = abs($bounds[4] - $bounds[0]);

$height = abs($bounds[3] - $bounds[7]);

$offset_y = $font_height;

$offset_x = 0;

} else if ($rot > 0) {

$width = abs($bounds[2] - $bounds[6]);

$height = abs($bounds[1] - $bounds[5]);

$offset_y = abs($bounds[7] - $bounds[5]) + $font_height;

$offset_x = abs($bounds[0] - $bounds[6]);

} else {

$width = abs($bounds[4] - $bounds[6]);

$height = abs($bounds[7] - $bounds[1]);

$offset_y = $font_height;

$offset_x = 0;

}

$bg = imagecreatetruecolor($width + 20, $height + 20); // 建立画布

$color = imagecolorallocatealpha($bg, 0, 0, 0, 127); //拾取一个彻底透明的颜色

imagealphablending($bg, false); //关闭混合模式,以便透明颜色能覆盖原画布

imagefill($bg, 0, 0, $color); //填充

imagesavealpha($bg, true); //设置保存PNG时保留透明通道信息

$textImg = imagecolorallocate($bg, $red, $grn, $blu); // 建立白色

ImageTTFText($bg, $size, 0, 10, $size + 10, $textImg, $font, $text);

imagepng($bg, $filename);

//生成的文字图片添加到图片里

$add_x = $add_x;

$add_y = $add_y;

$add_w = $width + 20;

$add_h = $height + 20;

$this - >image_copy_image($bg_image, $filename, $add_x, $add_y, $add_w, $add_h, $filename);

return $filename;

}

/**

* 文字自动换行

* @param [type] $fontsize [字体大小]

* @param [type] $angle [角度]

* @param [type] $fontface [字体名称]

* @param [type] $string [字符串]

* @param [type] $width [预设宽度]

*/

public

function autowrap($fontsize, $angle, $fontface, $string, $width) {

$content = "";

// 将字符串拆分红一个个单字 保存到数组 letter 中

preg_match_all("/./u", $string, $arr);

$letter = $arr[0];

foreach($letter as $l) {

$teststr = $content." ".$l;

$testbox = imagettfbbox($fontsize, $angle, $fontface, $teststr);

// 判断拼接后的字符串是否超过预设的宽度

if (($testbox[2] > $width) && ($content !== "")) {

$content. = PHP_EOL;

}

$content. = $l;

}

return $content;

}

}

? >

php 合并图片_文字,php合并图片与文字添加到图片里的类,能够设置文字的位置...相关推荐

  1. deepnode处理过的图片_微信图文排版用什么软件?文章图片大小不一样排版不齐怎么办?...

    小伙伴们在排版公众号文章的时候,有没有发现文章配图的大小很难保持一致,如果直接缩小或者放大图片可能导致图片模糊或者想要展示的细节没有了.而图片大小不一致也会导致排版不齐,整体看起来杂乱影响阅读观感. ...

  2. css里面li标签怎么加图片_分享三种给li标签添加图标的方法

    我们在页面布局时,经常会用到li标签,单独使用li标签比较单调,有时候为了页面效果,需要加入图片,那怎么在li标签中添加图片呢?这篇文章就和大家分享三种给li标签添加图标的方法,希望对你有用. 1.使 ...

  3. 根据坐标如何标记图片_推荐收藏 | 一文搞定SCI论文图片

    SCI论文图片的编辑是一门简单,却不容易的学问.在编辑图片的过程中,涉及到很多软件的配合使用,同时我们的目的不仅是满足投稿杂志的参数要求,还希望尽量做得美观好看. 现基于各大网站.公众号关于SCI作图 ...

  4. opencv java 显示图片_【opencv三】利用opencv读取显示图片

    在opencv中读取显示图片的头文件是highgui.hpp. 整体代码如下,如要测试自己的图片,需要将代码段中的图片地址更改为自己图片的绝对路径. #include "opencv2/hi ...

  5. java插入图片_如何在java窗体程序中添加图片

    打开eclipse,创建一个java工程项目,创建完后在src下新建一个类Window,由于要插入图片,所以还在工程目录下创建一个文件夹imgs,里面放了一张60*60的图片,创建后的工程目录和图片, ...

  6. 步骤条自定义图片_小技巧丨如何使用word批量调整图片大小?

    导Lead语 不知道你们有没有遇到需要批量修改图片尺寸的难题?那么,在大量图片的前提下,如何才能快速修改呢? 今天就和大家分享一下我当初的解决方法: 1F在word中添加 选择多个对象功能 新建一个W ...

  7. 【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)

    开始前,请先完成启动/欢迎/首屏广告页的开发,详见 [微信小程序-原生开发]实用教程04-启动/欢迎/首屏广告页(含倒计时.添加文字.rpx.定义变量和函数.读取变量.修改变量.wx.reLaunch ...

  8. python文字转图片_技能:如何使用Python将文本转为图片

    更多腾讯海量技术文章,请关注云加社区:https://cloud.tencent.com/developer/column 作者:CDA数据分析师 摘要:有时候,我们需要将文本转换为图片,比如发长微博 ...

  9. php把buffer转化为图片_长微博生成(将html转化为图片)原理浅析

    在平时工作中有一些需求,简单而言就是需要将一些内容生成图片.简单的内容通过PhotoShop处理还行,但是类似于带表格等的内容,每次都通过PhotoShop进行处理太浪费时间.网上有很多类似于长微博等 ...

  10. python画蛋糕祝福图片_蛋糕祝福语创意幽默 创意卡通生日蛋糕图片

    下文是蜜匠婚礼网精心整理的一篇关于蛋糕祝福语创意幽默以及创意卡通生日蛋糕图片,咱们一起来看看吧,希望对你有所帮助. 一.蛋糕祝福语创意幽默 1.今天是你的生日,我小心翼翼的记录我们点滴,庆幸我们走过的 ...

最新文章

  1. (转)VS2005 SP1发布,解决只能创建WebSite,无法创建Web Application项目的问题
  2. Linux如何在系统启动时自动加载模块
  3. 从镜像安装vs2010MSDN,错误“您没有权限修改为帮助内容存储区指定的位子下的内容......
  4. Python Matplotlib基本用法
  5. 关于让bootstrap3兼容ie8
  6. Cannot find 'Enhance Component' button in BSP Workbench
  7. .NET Core开发实战(第19课:日志作用域:解决不同请求之间的日志干扰)--学习笔记...
  8. 1-物联网开发标配方案(预期方案使用说明和演示)
  9. 程序员们记得还是八五年PC登陆我国时候的事?
  10. 每天进步一点点《ML - 逻辑回归》
  11. 两直线平行交叉相乘_直线与方程概论
  12. 编写shell管理脚本(二)
  13. 特征值+SVD分解+伪逆(广义逆)
  14. 桌面计算机未响应怎么办,电脑卡死程序未响应的解决方法步骤详解
  15. C/S构架和B/S构架
  16. 服务器里的文件删了能恢复吗,远程把服务器文件删了怎么恢复
  17. java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...
  18. magento bug|美国时间冬令时夏令时变更导致后台订单统计出现异常
  19. 美团2021校招笔试-编程题(通用编程试题,第1场)2. 小美的评分计算器
  20. 大型企业信息安全管理实践(05年第六期)

热门文章

  1. 算法实验室-24-拆分词句
  2. tinyproxy http代理服务
  3. [手搓人]大战[高亮编辑器/查找替换/函数跳跳蛙]--巅峰对决(2)
  4. 聊聊运算放大器---施密特与迟滞比较器
  5. Java对比两张Excel表的数据,java对比两个excel或者一张excel和数据库的一张表的数据是否相同,两张excel表格匹配相同的数据库...
  6. superfluid 流支付项目测试,埋伏空投
  7. CentOS7下编译安装libmodbus库
  8. 服务器意外断电MySQL无法启动
  9. window 下 达梦数据库的备份和还原
  10. call与caller与callee的区别