php图片合成【png图片】
2024-09-08 07:50:38
php 图片合成【png图片】
- 示例代码
<?php
header("Content-type:text/html;charset=utf-8");
error_reporting(E_ALL);
define("WWWROOT",str_replace(DIRECTORY_SEPARATOR,'/',str_ireplace(str_replace("/","\\",$_SERVER['PHP_SELF']),'',__FILE__)."\\"));
$img1 = WWWROOT."resource/big.png";
$img2 = WWWROOT."resource/small.png";
$image_1 = imagecreatefrompng($img1);
$image_2 = imagecreatefrompng($img2);
$left = intval((imagesx($image_1) - imagesx($image_2)) / 2);
$top = intval((imagesy($image_1) - imagesy($image_2)) / 2);
imagecopymerge($image_1, $image_2, $left, $top, 0, 0, imagesx($image_2), imagesy($image_2), 100);
$merge = WWWROOT."resource/merge1.png";
$down = imagepng($image_1, $merge);
if ($down) {
return $merge;
} else {
return false;
}
- 代码参考补充
//参数 活动模板图片,二维码url,模板内二维码的位置
function getActivityImg($template,$url,$x,$y)
{
require_once library_path("/phpqrcode.php");
//二维码中间添加logo
$logo = public_path('/assets/img/logos/logo.png');
$QR = "base.png";
$last = "last.png";
$errorCorrectionLevel = 'Q'; //防错等级
$matrixPointSize = 8; //二维码大小
//生成二维码
//参数内容:二维码储存内容,生成存储,防错等级,二维码大小,白边大小
QRcode::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1);
//合并logo跟二维码-----------------start
$QR = imagecreatefromstring(file_get_contents($QR));
$logo = imagecreatefromstring(file_get_contents($logo));
$QR_width = imagesx($QR);
$logo_width = imagesx($logo);
$logo_height = imagesy($logo);
$logo_qr_width = $QR_width / 5;
$scale = $logo_width / $logo_qr_width;
$logo_qr_height = $logo_height / $scale;
$from_width = ($QR_width - $logo_qr_width) / 2;
imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
imagepng($QR,$last); // 生成带log的二维码图片 存储到last
//合并logo跟二维码-----------------end
//合成带logo的二维码图片跟 模板图片--------------start
$path_1 = $template;
$path_2 = $last;
$image_1 = imagecreatefromjpeg($path_1);
$image_2 = imagecreatefrompng($path_2);
$image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1));
$color = imagecolorallocate($image_3, 255, 255, 255);
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));
imagecopymerge($image_3, $image_2, $x, $y,0, 0, imagesx($image_2), imagesy($image_2), 100);
//合成带logo的二维码图片跟 模板图片--------------end
//输出到本地文件夹
$fileName=md5(basename($template).$url);
$EchoPath='/assets/img/'.$fileName.'.png';
imagepng($image_3,public_path($EchoPath));
imagedestroy($image_3);
//返回生成的路径
return $EchoPath;
}
最新文章
- sql server2008禁用远程连接
- Highgui.imwrite(";/data/pic1111.png";, mat)失败,且找不到报错
- Altium designer总结
- Delphi TcxTreelist 表格左边总是缩进去 ,好像有偏移 解决方法
- hdu 1711 Number Sequence(KMP模板题)
- C# 几种退出程序的方式
- orcl 删除重复的行
- javaScript 消除错误,并将错误记录在控制台,阻止浏览器错误警告
- 分布式任务调度——quartz + spring + 数据库
- raw_input与input
- JAVA-MyBaits对应XML的两种使用方式
- Using QueryRunner to insert ArrayList<;Object[]>;
- JS制作蔡徐坤打篮球小游戏(鸡你太美?)
- Java集合类源码解析:AbstractMap
- Mac显示器不亮
- python全栈 字符串,整数,bool 数据类型运用
- PAT 甲级 1008 Elevator (20)(代码)
- 【poj3169】【差分约束+spfa】
- python 常用模块之os
- MySQL数据库(6)----配置文件 my.cnf 的使用
热门文章
- wxWidgets源码分析(5) - 窗口管理
- Hi3559AV100外接UVC/MJPEG相机实时采图设计(一):Linux USB摄像头驱动分析
- 剑指 Offer 25. 合并两个排序的链表
- 【Arduino学习笔记03】面包板基础知识
- CMDB项目要点之技术点(面试题)
- unittest系列(一)unittest简介和示例
- 2018.9.9 nowcoder 普及组第一场
- JAVA常用的集合转换
- 仿String()构造器函数 【总结】
- python3 int() 各数据类型转int