php合成图片 文字
代码:
public function mergePic(){
$ground = '/Public/merge/beijing.png';
$img = [
'url'=>'/Public/merge/qrcode.png',
'x'=>100,
'y'=>100
];
$qr = [
'url'=>'/Public/merge/qr.jpg',
'x'=>150,
'y'=>1400
];
$text = [
'size'=>20,
'text'=>'123456'
];
$this->merge($ground,$img,$qr,$text);
}
/**
* @param $ground string 背景
* @param $img array 图片
* @param $qr array 二维码
* @param $text array 文字
*/
public function merge($ground,$img=[],$qr=[],$text=[]){
$types = [
"image/jpg" => 'imagecreatefromjpeg',
"image/jpeg" => 'imagecreatefromjpeg',
"image/png" => 'imagecreatefrompng',
"image/pjpeg" => 'imagecreatefromjpeg',
"image/gif" => 'imagecreatefromgif',
"image/bmp" => 'imagecreatefromwbmp',
"image/x-png" => 'imagecreatefromjpeg'
];
$groundMime = getimagesize(getcwd().$ground);
$grounds = $types[$groundMime['mime']](getcwd().$ground);//获取图片资源
// $fileName = "/Public/merge/".time().".png";//保存图片目录
$fileName = "/Public/merge/123.png";//保存图片目录
if($img){
$imgMime = getimagesize(getcwd().$img['url']);
$imgs = $types[$imgMime['mime']](getcwd().$img['url']);//获取图片资源
$imgsW = imagesx($imgs);//图片宽
$imgsH = imagesy($imgs);//图片高
imagecopy($grounds, $imgs, $img['x'], $img['y'], 0, 0, $imgsW, $imgsH);//核心函数:复制图片资源到另一图片资源中
}
if($qr){
$qrMime = getimagesize(getcwd().$qr['url']);
$qrs = $types[$qrMime['mime']](getcwd().$qr['url']);//获取图片资源
$qrsW = imagesx($qrs);//图片宽
$qrsH = imagesy($qrs);//图片高
imagecopy($grounds, $qrs, $qr['x'], $qr['y'], 0, 0, $qrsW, $qrsH);//核心函数:复制图片资源到另一图片资源中
}
if($text){
$size = $text['size'];//字体大小
$font = "./Public/merge/yuanti.ttf";//字体
$text = $text['text'];//显示的文字
$grey = imagecolorallocate($grounds,0,0,0);//设置字体颜色
imagettftext($grounds,$size,0,100,100,$grey,$font,$text);//将ttf文字写到图片中
}
imagepng($grounds,getcwd().$fileName); //保存
imagedestroy($grounds);
imagedestroy($imgs);
imagedestroy($qrs);//销毁图片资源
}
参考:
php合成图片 文字的更多相关文章
- [JavaScript] canvas 合成图片和文字
Canvas Canvas 是 HTML5 新增的组件,就像一个画板,用 js 这杆笔,在上面乱涂乱画 创建一个 canvas <canvas id="stockGraph" ...
- PHP合成图片、生成文字、居中对齐、画线、矩形、三角形、多边形、图片抗锯齿、不失真 高性能源码示例
function generateImg($source, $text1, $text2, $text3, $font = './msyhbd.ttf') { $date = '' . date ( ...
- PHP生成小程序二维码合成图片生成文字
这部分代码是写在项目上的代码,THINKPHP3.1如果迁移到其他的地方应该要稍稍改动一下以适合自己的项目 function get_bbox($text,$fsize,$ffile){ return ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 18—Photo OCR 应用实例:图片文字识别
Lecture 18—Photo OCR 应用实例:图片文字识别 18.1 问题描述和流程图 Problem Description and Pipeline 图像文字识别需要如下步骤: 1.文字侦测 ...
- [C13] 应用实例:图片文字识别(Application Example: Photo OCR)
应用实例:图片文字识别(Application Example: Photo OCR) 问题描述和流程图(Problem Description and Pipeline) 图像文字识别应用所作的事是 ...
- UIButton的titleEdgeInsets属性和imageEdgeInsets属性实现图片文字按要求排列
button可以设置 titleEdgeInsets属性和 imageEdgeInsets属性来调整其image和label相对位置,具体参考http://stackoverflow.com/ques ...
- iOS UIButton 图片文字上下垂直布局 解决方案
实现如图所示效果: 这是一个UIButton,需要改变image和title相对位置. 解决如下: //设置文字偏移:向下偏移图片高度+向左偏移图片宽度 (偏移量是根据[图片]大小来的,这点是关键)b ...
- 『方案』《女友十年精华》 ORC 图片 文字识别 详解
目的需求: 2008年,遇到一本电子书 <女友十年精华> 觉得很美,想 私藏 这些文章: >网络搜索文章 —— 没有找到: >反编译程序 —— 所有文字 都是图片格式(部分文章 ...
- CSS 实现:图片+文字的布局(综合)
☊[实现要求]:图片+文字+居中 √[实现]: ① img + 文字 <div class="demo2-1"> <img src="" al ...
随机推荐
- Lua 5.3 参考手册
转自:http://www.runoob.com/manual/lua53doc/manual.html 1 – 简介 Lua 是一门扩展式程序设计语言,被设计成支持通用过程式编程,并有相关数据描述设 ...
- Jmeter————监控服务器性能
1. 下载jmeter插件 上面2个是jmeter插件,第3个要放在监控的服务器中. 2. 解压压缩包 找到解压包中的JAR文件,并拷贝到jmeter的lib/ext目录下,这里下载的1.4版本的插件 ...
- INFORMATICA 开发规范
目 录 Informatica开发规范.... 1 目 录.... 2 1 编写目的.... 4 2 ETL研发责任人界定.... 4 3 ETL ...
- Python学习---Python的框架基础学习
框架基础 框架实质: 所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 B/S结构的响应: import socket def handle_requ ...
- Linxu下 expect的实用实例_1
案例 例1:从本机自动登录到远程机器192.168.1.200(端口是22,密码是:PASSWORD)登录到远程机器后做以下几个操作:1)useradd wangshibo2)mkdir /opt/t ...
- HTTP协议图--HTTP 报文实体
1. HTTP 报文实体概述 HTTP 报文结构 大家请仔细看看上面示例中,各个组成部分对应的内容. 接着,我们来看看报文和实体的概念.如果把 HTTP 报文想象成因特网货运系统中的箱子,那么 H ...
- Redis的数据类型及其常用命令
快速入门Redis 首先安装redis: windows下安装redis Linux下安装redis 1. 什么是redis Redis属于nosql(非关系型数据库) 关系型数据库是基于关系表的数据 ...
- JVM线程状态,park, wait, sleep, interrupt, yeild 对比
---恢复内容开始--- JVM线程状态 NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED BLOCKED是等待获得对象锁 WAIT ...
- webpack和gulp
在没有使用任何自动化工具之前,如果用sass写了css, 用coffee写了js, 那么我们必须手动用相应的compiler去编译各自的文件,然后各自minify(js,css文件压缩并合并).这时如 ...
- echarts柱状图,改变柱状颜色
在使用echarts产生的柱状图中,有时候自动产生的颜色大不如人意,可以通过以下参数进行修改. series : [ { name:'天数', type:'bar', stack: '天', data ...