PHP 合成图片并在图片上加文字

2023-11-11

/**
     * Info:  PHP把一张图片作为背景和另一张图片合成新图片
     */
	public function createImage(){
		$path_1 = 'XXXXX/attachment/images/20200801/4d8e641215b9ed593298ff6e853bd4d4.jpg'; //背景图片
		$path_2 = 'XXXXXXXX/attachment/wxampcode/4a498c4ee5b1353434fa1d04add9dba1.jpg';

		$image_1 = imagecreatefromjpeg($path_1);
		$image_2 = imagecreatefromjpeg($path_2);
		
		$image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1));
		
		$color = imagecolorallocate($image_3, 255, 255, 255);

		//获取图片的属性,第一个宽度,第二个高度,类型1=>gif,2=>jpeg,3=>png
		list($width,$height,$type) = getimagesize($path_1);
		//设置居中图片的X轴坐标位置
		$x = ($width)/3.1;
		//设置居中图片的Y轴坐标位置
		$y = ($height)/3.1;

		imagefill($image_3, 0, 0, $color);
		imageColorTransparent($image_3, $color);
		imagecopyresampled($image_3,$image_1,0,0,0,0,imagesx($image_1),
		imagesy($image_1),imagesx($image_1),imagesy($image_1));
		//图片在背景上的位置 $x横坐标,$y纵坐标
		imagecopymerge($image_3,$image_2, $x,$y,0,0,imagesx($image_2),imagesy($image_2), 100);
		//将画布保存到指定的文件
		imagejpeg($image_3, './new.jpg');
	}
//php gd库合成图片并在图片上加文字
public function ceshi(){
			$bgimg = "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fdingyue.nosdn.127.net%2FmQIwcrN7Dq78tBWPT44I3oL5yv9lsL%3Dyu%3DvzUK%3DJzA0yr1530541107276compressflag.jpg&refer=http%3A%2F%2Fdingyue.nosdn.127.net&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1641632933&t=a91cffe026acdbb99716738c22870c4f";//背景图
			$bg_info = getimagesize($bgimg);

			//获取图片的后缀
			$bg_type = image_type_to_extension($bg_info[2], false);
			//拼接图片资源句柄函数
			$func = 'imagecreatefrom' . $bg_type;
			//创建图片资源句柄
			$bg_image = $func($bgimg);

			//图1处理
			$tu1 = "http://XXXXXXX/attachment/wxampcode/a35b1399bca9de06c534aaaa2ba95ef4.jpg";
			$tu1_info = getimagesize($tu1);
			$tu1_type = image_type_to_extension($tu1_info[2], false);
			//创建图片资源句柄
			$tu1_func = 'imagecreatefrom' . $tu1_type;
			$tu1_image = $tu1_func($tu1);
			//合并背景图+图1
			imagecopy($bg_image, $tu1_image, 320, 800, 0, 0, 470, 400);  //图1 200距左边距 50距顶边距 301 299图1大小  背景图 0 0


			// //图2处理  二维码
			// $tu2 = "https://XXXXXX/attachment/images/20200801/4d8e641215b9ed593298ff6e853bd4d4.jpg";
			// $tu2_mark = getimagesize($tu2);
			// $tu2_type = image_type_to_extension($tu2_mark[2], false);
			// //创建图片资源句柄
			// $tu2_func = 'imagecreatefrom' . $tu2_type;
			// $tu2_image = $tu2_func($tu2);
			// //合并背景图+二维码
			// imagecopy($bg_image, $tu2_image, 583, 1193, 0, 0, 258, 261);


			//文字
			$font = "./Candice.ttf"; //字体文件
			$content = ['你好11111111111111111111111111111111111111111111111111111', '11111111111111111111111111111111111111小码农'];
			$font_lposition = [10, 10]; //距左边距
			$font_tposition = [920, 320]; //距上边距
			if (count($content) > 0) {
			for ($i = 0; $i < count($content); $i++) {
				imagettftext($bg_image, 25, 0, $font_lposition[$i], $font_tposition[$i], 21, $font, $content[$i]);
			}
			}

			//图片输出函数拼接
			$outFunc = 'image' . $bg_type;

			//保存图片
			$img_name = "new111.jpg";
			$outFunc($bg_image, $img_name);
			//销毁内存
			imagedestroy($bg_image);
			imagedestroy($tu1_image);
			// imagedestroy($tu2_image);

	}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 合成图片并在图片上加文字 的相关文章

随机推荐

  • linux ping命令参数说明及使用

    一 参数说明 在控制台输入ping会有参数说明 BusyBox v1 22 1 2019 07 23 15 07 27 CST multi call binary Usage ping OPTIONS HOST Send ICMP ECHO
  • 2018 年,关于深度学习的 10 个预测

    我有一种预感 2018年 所有的事情都会发生巨变 我们在2017年看到的深度学习取得的惊人突破将会以一种强大的方式延续到2018年 2017年在深度学习领域的研究成果将会应用于日常的软件应用中 下面是我对2018年深度学习的10个预测 1
  • 抓取chrome所有版本密码

    文章首发先知社区 https xz aliyun com t 9752 工具已上传到github https github com SD XD Catch Browser 谷歌浏览器存储密码的方式 在使用谷歌浏览器时 如果我们输入某个网站的
  • python 无头模式 绕过检测_python爬虫反反爬虫有绝技,轻松绕开百度人机验证!...

    你可能已经了解到了无头浏览器的作用以及使用的方法 那么本篇文章就让我们一起用无头浏览器做点事情 是的你没有看错 我们要 搞 的对象就是百度指数这个网站 不知道你平时是否会应用到这里面的数据呢 今天的主要目标就是使用无头浏览器登录百度指数网站
  • 离散傅里叶变换MATLAB实现

    文章目录 要求 一 连续函数抽样 二 抽样长度确定 三 DFT 1 使用一次循环实现DFT 2 使用矩阵实现DFT 总结 要求 有一单频信号y t sin 2 ft 其中f 100Hz 和f 500Hz 分别用DFT求y t 的谱 抽样频率
  • 某中学校校园网络方案设计(课程设计)

    目录 一 绪论 1 1 中小学校园信息化应用的现状 1 2 中小学校园网络系统现状 二 需求分析 2 1 获取需求的途径 方法 过程等 2 2基本情况 2 3 建筑分布 2 4 信息点 需联网的设备 分布及数量 表格 三 设计 3 1 设计
  • cesium for ue5中actor的cesium georeference组件的改变(英文教程文档是更新了的)

    今天 重新回顾下cesium for ue的教程 actor添加cesium georeference组件 发现在ue5中 没有这个组件了 忍住卸载ue5 重新安装ue4 27的冲动 cesium的组件数量增多了 反而功能减少了 不可能 绝
  • Unity之UI

    Unity之UGUI 一 Canvas 1 创建Canvas 2 Render Mode 1 Screen Space Overlay 2 Screen Space Camera 3 World Space 3 Pixel Perfect
  • 【计算机毕设项目】基于大数据的社交平台数据爬虫舆情分析可视化系统

    文章目录 0 前言 1 课题背景 2 实现效果 实现功能 可视化统计 web模块界面展示 3 LDA模型 4 情感分析方法 预处理 特征提取 特征选择 分类器选择 实验 5 部分核心代码 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不
  • python智能合约编程_如何用Python Flask开发以太坊智能合约

    将数据存储在数据库中是任何软件应用程序不可或缺的一部分 无论如何控制该数据库都有一个该数据的主控 区块链技术将数据存储到区块链网络内的区块中 因此 只要某个节点与网络同步 它们就会获得区块中数据的副本 因此 该技术中没有特定的数据主控 在本
  • C#学习教程八

    枚举 枚举是C 编程语言的一种类型 跟类 结构 密封类 分布类 委托 事件 抽象都是同一级别的类型 枚举用enum关健字来定义 枚举可以一次性定义一组常量和常量的使用方式一样 枚举通常用在分支语句中 这种做法可以增加程序的可读性 枚举中的每
  • 如何查看和修改linux系统的字符集

    查看系统的字符集 通过locale命令查看系统支持的字符集 这个是很干净的一个系统 root master locale a C en US utf8 POSIX 还有这种对字符集支持比较好的 root master yt locale a
  • lock锁

    目录 1 lock 基本用法 2 lock公平锁与非公平锁 3 lock注意事项 4 synchronized 与 lock区别 1 lock 基本用法 lock lock try finally lock unlock 或者 try lo
  • Vue中element组件Pagination跳转到第二页后搜索功能失效

    在写组件分页功能遇到一个bug 当点击到除第一页以外 搜索功能失效 解决方法是在搜索函数中加上this page 1 如果搜索是空值显示数据 searchKeyFun2 value this page 1 设置搜索页面到第一页 this s
  • 18.1. Fabric2.2 区块链农产品溯源系统 - 多Peer部署(扩展)

    这是一篇后补文章 看时间大家能够看出来 通过前面的学习 大家知道如何增加组织 如何部署多Orderer 本节介绍如何在一个组织内部署多个Peer节点 本节是基于上一节操作的继续 脚本也是基于上节进行修改的 1 目标 为组织1新增一个节点 p
  • 微信支付开发——多种支付

    微信提供了好多种的支付产品 本文要讲解的是我在实际开发中用的几种 JSAPI支付 NATIVE支付 扫码支付 H5支付 小程序支付 微信提供的各种支付方式 只要了解一种 其他几种支付差别不大 其中不管是哪种支付 都需要调用统一的一个接口 微
  • STM32的USART发送中断标志位USART_IT_TXE和USART_IT_TC

    与STM32的发送中断相关的标志位有USART IT TXE和USART IT TC 根据ST芯片手册的信息可知 USART在发送移位寄存器 Transmit Shift Register 前面 还有一个TDR Transmit data
  • C#多线程开发总结

    1 关闭Form窗体进程还在的问题方法一 Thread IsBackground true 方法二 System Environment Exit 0 方法三 FormClosing方法内手动释放所有托管资源 注意 强行关闭时都要做好全局未
  • IDEA 如何设置和修改项目属性?

    找到project structure按钮 1 点击界面上的project structure按钮或者使用快捷键ctrl alt shift s打开工程设置页 END 设置project默认的jdk和java语言级别
  • PHP 合成图片并在图片上加文字

    Info PHP把一张图片作为背景和另一张图片合成新图片 public function createImage path 1 XXXXX attachment images 20200801 4d8e641215b9ed593298ff6