<?php

class image{

    /**
* @param string $backgroundImage 背景图
* @param string $smallImage 小图
* @param int $smallX 小图相对于背景图x轴位移
* @param int $smallY 小图相对于背景图Y轴位移
* @param string $output_path 输出图片的路径
* @param string $output_filename 输出图片的名字
* @return array
*/
public function bindImages($backgroundImage='',$smallImage='',$smallX=,$smallY=,$output_path='',$output_filename='')
{
if(empty($backgroundImage) || empty($smallImage))
{
return array('result'=>"fail",'msg'=>"图片参数为空");
}
if(!file_exists($backgroundImage))
{
return array('result'=>"fail",'msg'=>"背景图片文件不存在");
}
if(!file_exists($smallImage))
{
return array('result'=>"fail",'msg'=>"小图片文件不存在"); }
if(empty($output_path))
{
$output_path='./';
} //需要生成随机名称
if(empty($output_filename))
{
$output_filename=md5(time()).'.png';
} //imagecreatefrompng():创建一块画布,并从 PNG 文件或 URL 地址载入一副图像
$image_1 = imagecreatefrompng($backgroundImage);
$image_2 = imagecreatefrompng($smallImage); //分配图像资源
$image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1));
$color = imagecolorallocate($image_3, , , );
imagefill($image_3, , , $color);
imageColorTransparent($image_3, $color); //图像拷贝
imagecopyresampled($image_3,$image_1,,,,,imagesx($image_1),imagesy($image_1),imagesx($image_1),imagesy($image_1)); imagecopymerge($image_3,$image_2, $smallX,$smallY,,,imagesx($image_2),imagesy($image_2), );
//将画布保存到指定的png文件
$result=imagepng($image_3, $output_path.$output_filename); if($result==true)
{
return array('result'=>"success",'msg'=>"合成成功",'imgurl'=>$output_path.$output_filename);
}
else
{
return array('result'=>"fail",'msg'=>"合成失败");
}
}
} $obj=new image();
$t=$obj->bindImages('background.png','3.png',,);

php合并图片的更多相关文章

  1. 用DIV+CSS切割多背景合并图片 CSS Sprites 技术

    很久之前就在互联网网站和一些js插件中见过这种技术的应用,当时觉得很麻烦,就没有用,也没有去深究. 近段时间一直在做前台的一些东西,涉及到很多div+css的问题.这个东东我又碰到了,所以我花了点时间 ...

  2. c# 根据窗口截图,合并图片

    c# 根据窗口截图,合并图片 public class CaptureWindows { #region 类 /// <summary> /// Helper class containi ...

  3. 减少HTTP请求之合并图片详解(大型网站优化技术)

    原文:减少HTTP请求之合并图片详解(大型网站优化技术) 一.相关知识讲解 看过雅虎的前端优化35条建议,都知道优化前端是有多么重要.页面的加载速度直接影响到用户的体验.80%的终端用户响应时间都花在 ...

  4. C#放缩、截取、合并图片并生成高质量新图的类

    原文:C#放缩.截取.合并图片并生成高质量新图的类 using System;using System.Drawing;using System.Drawing.Imaging;using Syste ...

  5. C#一些常用的图片操作方法:生成文字图片 合并图片等

    生成文字图片: /// <summary> /// 生成文字图片 /// </summary> /// <param name="text">& ...

  6. python合并图片

    因项目需求需要将图片合并故写了一个python脚本,在这里放个笔记 #!/usr/bin/env python #coding=utf-8 import Image import os import ...

  7. .net core 图片合并,图片水印,等比例缩小,SixLabors.ImageSharp

    需要引用 SixLabors.ImageSharp 和SixLabors.ImageSharp.Drawing 引用方法 NuGet包管理 添加程序包来源 https://www.myget.org/ ...

  8. WPF 通过位处理合并图片

    原文:WPF 通过位处理合并图片 本文告诉大家,在使用 WPF 合并两张图片的处理,可以使用像素之间的与或和异或的方式,对三个颜色的通道进行处理. 先给大家看一下软件的界面 这就是通过将左边的两张图片 ...

  9. C#.NET 合并图片

    引用:https://www.cnblogs.com/stulzq/p/6137715.html util: using System; using System.Collections.Generi ...

  10. 2018-10-20-WPF-通过位处理合并图片

    title author date CreateTime categories WPF 通过位处理合并图片 lindexi 2018-10-20 16:53:49 +0800 2018-10-20 1 ...

随机推荐

  1. 前端面试题1:Object.prototype.toString.call() 、instanceof 以及 Array.isArray()三种方法判别数组的优劣和区别

    1. Object.prototype.toString.call() 每一个继承 Object 的对象都有 toString 方法,如果 toString 方法没有重写的话,会返回 [Object ...

  2. edge不能上网-代码 INET_E_RESOURCE_NOT_FOUND

    这个问题 ,网上有很多解决方法,我基本都测试了一遍,可是我都没有用 情况:首先,我开始的时候是可以用的,然后在公司,开了代理,就不能使用了,这是我之后多次尝试发现的,所以你也遇到和我一样的情况不必惊慌 ...

  3. 驾考试题的json代码

    { "statusCode": "000000", "desc": "请求成功", "result" ...

  4. d3.js--01

    D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档.听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,使用它主要是用来做数据可 ...

  5. mysql基础,事物

  6. mysql五:索引原理与慢查询优化

    一 介绍 为何要有索引? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句 ...

  7. oracle 11gR2 for win7旗舰版64安装以及连接plsql和NaviCat(win64_11gR2_database) (2012-12-31-bd 写的日志迁移

    先到oracle官网http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.html下载必要数 ...

  8. 动态规划:HDU1176-免费馅饼

    免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. Linux多线程总结

    一.Linux线程 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型.Linux是一种“多进程单线程”的操作系统.Linux本身只有进程的概念,而其所谓的“线程”本质 ...

  10. 子窗体与父窗体调用对方js方法

    有时候为了减少一个页面内的代码量,会将部分内容放到子窗体中,如后台管理中用iframe来进行管理 <div> <iframe id="dviframe" src= ...