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 ...
随机推荐
- ZT android -- 蓝牙 bluetooth (三)搜索蓝牙
android -- 蓝牙 bluetooth (三)搜索蓝牙 分类: Android的原生应用分析 2013-05-31 22:03 2192人阅读 评论(8) 收藏 举报 bluetooth蓝牙s ...
- IOS 缓存思路
为了提高程序的响应速度,可以考虑使用缓存(内存缓存\硬盘缓存) 第一次请求数据时内存缓存中没有数据硬盘缓存中没有数据 当服务器返回数据时,需要做以下步骤 使用服务器的数据(比如解析.显示) 将服务器的 ...
- Angular2 constructor VS ngOnInit
constructor和ngOnInit钩子有什么不同? constructor constructor(构造函数)是ES6类或TypeScript类中的特殊方法,而不是Angular的方法,主要用来 ...
- Postgresql 数据库,如何进行数据备份以及导入到另外的数据库
方法其实有很多种,这里用的方法比较稳妥.之后有时间会补充别的方法. 该方法分为三步:备份数据,新建表结构,导入数据 备份数据:>>\copy table_name to '/home/ba ...
- c++ 派生类的复制函数次序,及子父类兼容性
#include <iostream> using namespace std; class CFatherSum //父类Sum { public: CFatherSum(){cout& ...
- Dubbo特性
dubbo.properties Dubbo 将自动加载 classpath 根目录下的dubbo.properties,可以通过JVM启动参数 -Ddubbo.properties.file=xxx ...
- Spring JPA 主键
JPA主键生成器和主键生成策略 JPA中创建实体时,需要声明实体的主键及其主键生成策略.我们有一个实体类叫做Email,其主键上声明如下: @Id @Column(name = "EMAIL ...
- Linux下utf-8 BOM 的检查和删除 (65279错误解决办法)
Java代码在转换为UTF-8编码后,Eclipse编译运行没有问题,但是用Maven编译时,抛出非法字符65278错误. 原因在于,转换后文件头部带有BOM信息,而Maven不支持,删掉文件头的BO ...
- urllib库基本使用
#导入urllib库 import urllib.request #打开网址 file=urllib.request.urlopen("http://www.sohu.com/", ...
- D、CSL 的字符串 【栈+贪心】 (“新智认知”杯上海高校程序设计竞赛暨第十七届上海大学程序设计春季联赛)
题目传送门:https://ac.nowcoder.com/acm/contest/551#question 题目描述 CSL 以前不会字符串算法,经过一年的训练,他还是不会……于是他打算向你求助. ...