php图片合成【png图片】
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;
}
php图片合成【png图片】的更多相关文章
- C# 图片的裁剪,两个图片合成一个图片
图片的裁剪,两个图片合成一个图片(这是从网上摘的) /// <summary> /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_ne ...
- Java图片处理(一)图片合成
如何将多个头像合成类似QQ的群头像? 如上图所示,如何用java将单一的图片合成如上群头像. 在一个正方形外框中,要将多个图片合成上述图片.首先要做的是,依据圆相交的程度,计算圆心坐标与图片间空白区域 ...
- compass Sprites 雪碧图 小图片合成[Sass和compass学习笔记]
demo 源码 地址 https://github.com/qqqzhch/webfans 什么是雪碧图? CSS雪碧 即CSS Sprites,也有人叫它CSS精灵,是一种CSS图像合并技术,该方法 ...
- android 文字图片合成
引用:http://blog.csdn.net/cq361106306/article/details/8142526 两种方法: 1.直接在图片上写文字 String str = "PIC ...
- php 图片添加文字水印 以及 图片合成(微信快码传播)
1.图片添加文字水印: $bigImgPath = 'backgroud.png'; $img = imagecreatefromstring(file_get_contents($bigImgPat ...
- java使用BufferedImage和Graphics实现图片合成
package com.igoxin.weixin.custom; import java.awt.Graphics; import java.awt.image.BufferedImage; imp ...
- 【开源java游戏框架libgdx专题】-12-开发工具-图片合成
TexturePackerGui工具: 1.工具使用: 首先看到texturepacker的界面 界面介绍: New pack:创建项目按钮,单击后输入文件名称,创建文件. Input directo ...
- Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现
Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...
- iOS 图片水印、图片合成文字或图片实现
这个需求可能有时候会碰到,比如自己的照片加版权,打水印等 网上的方法,有不少感觉不全对,或者需求不是特全,这里我总结了3种场景下的需求: 1.本地图片合成文字 2.本地图片合成图片 3.网络图片先下载 ...
- php 图片合成时文字颜色丢失
最近在做图片合成的时候无意间发现文字颜色丢失了,仔细找了以后才发现原来是因为图片格式的原因 当图片是png图片时文字的颜色就变成了白色的,So.........去你妹的png,用jpg吧! $dest ...
随机推荐
- 阿里巴巴Druid,轻松实现MySQL数据库连接加密!
为什么要加密? 现在的开发习惯,无论是公司的项目还是个人的项目,都会选择将源码上传到 Git 服务器(GitHub.Gitee 或是自建服务器),但只要将源码提交到公网服务器就会存在源码泄漏的风险,而 ...
- Hi3519 SDK搭建、问题总结及yolov3 RFCN的运行结果与测试
下面记录一下,在搭建Hi3519A SDK的注意事项与遇到的问题解决,及Hi3519A SDK环境下进行yolov3.RFCN的测试.(具体的Hi3519A的SDK环境搭建参考后面随笔-Hi3559A ...
- MySql 基础使用(一)
参考网址:http://c.biancheng.net/view/7143.html 1. 安装完成后,登录mysql. //登录mysql mysql -u root -p(mysql -u roo ...
- 【图像处理】使用OpenCV+Python进行图像处理入门教程(二)
这篇随笔介绍使用OpenCV进行图像处理的第二章 图像的运算,让我们踏上继续回顾OpenCV进行图像处理的奇妙之旅,不断地总结.回顾,以新的视角快速融入计算机视觉的奥秘世界. 2 图像的运算 复杂的 ...
- HDOJ-6685(暴力+思维)
Rikka With Coin HDOJ-6685 主要的思想如下: 首先10元的硬币最多只会用一个,如果用了两个,直接替换成一个10元.一个20元一定不亏. 20元的硬币最多只会用三个,如果用了四个 ...
- python分离不同后缀名的文件
功能描述 根据文件后缀名处理文件,分别拷贝到对应的文件夹下 example >>> .jpg 后缀 和.mp4 后缀文件处理 代码实现 #!/usr/bin/env python # ...
- 从零学脚手架(二)---初识webpack
在上一篇中,介绍了 webpack 的 entry . output . plugins 属性. 在这一篇,接着介绍其它配置属性. mode 这个属性在上一篇中使用过一次:设置 webpack 编译模 ...
- WPF 基础 - 控件与布局
1. 前言 1. 数据驱动 UI WPF 是数据核心.主动的,UI 从属数据并表达数据.是被动的: 不再是 UI 驱动数据,而是数据驱动 UI: 2. 控件的定义 控件.数据内容.行为(控件响应用户操 ...
- allure报告详解+jenkins配置
今天的博客分为两部分 1.allure报告实战 2.allure结合jenkins 一.allure 1.allure安装 a.下载路径 https://repo.maven.apache.org/m ...
- Java 运行时数据区和内存模型
运行时数据区是指对 JVM 运行过程中涉及到的内存根据功能.目的进行的划分,而内存模型可以理解为对内存进行存取操作的过程定义.总是有人望文生义的将前者描述为 "Java 内存模型" ...