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;
}

最新文章

  1. sql server2008禁用远程连接
  2. Highgui.imwrite(&quot;/data/pic1111.png&quot;, mat)失败,且找不到报错
  3. Altium designer总结
  4. Delphi TcxTreelist 表格左边总是缩进去 ,好像有偏移 解决方法
  5. hdu 1711 Number Sequence(KMP模板题)
  6. C# 几种退出程序的方式
  7. orcl 删除重复的行
  8. javaScript 消除错误,并将错误记录在控制台,阻止浏览器错误警告
  9. 分布式任务调度——quartz + spring + 数据库
  10. raw_input与input
  11. JAVA-MyBaits对应XML的两种使用方式
  12. Using QueryRunner to insert ArrayList&lt;Object[]&gt;
  13. JS制作蔡徐坤打篮球小游戏(鸡你太美?)
  14. Java集合类源码解析:AbstractMap
  15. Mac显示器不亮
  16. python全栈 字符串,整数,bool 数据类型运用
  17. PAT 甲级 1008 Elevator (20)(代码)
  18. 【poj3169】【差分约束+spfa】
  19. python 常用模块之os
  20. MySQL数据库(6)----配置文件 my.cnf 的使用

热门文章

  1. wxWidgets源码分析(5) - 窗口管理
  2. Hi3559AV100外接UVC/MJPEG相机实时采图设计(一):Linux USB摄像头驱动分析
  3. 剑指 Offer 25. 合并两个排序的链表
  4. 【Arduino学习笔记03】面包板基础知识
  5. CMDB项目要点之技术点(面试题)
  6. unittest系列(一)unittest简介和示例
  7. 2018.9.9 nowcoder 普及组第一场
  8. JAVA常用的集合转换
  9. 仿String()构造器函数 【总结】
  10. python3 int() 各数据类型转int