这里的合成是多张图片合成在一张里,不是合成为GIF图片,需要的朋友可以直接下载使用。

图片合成,可以显示在浏览器上面同时保存到文件夹下面

实例如下所示:<?php

/**

* 图片合并

**/

$pic_list = array(

'img2.png',

'img2.png',

'logo.png',

'logo.png',

'logo.png',

'img2.png',

'img2.png',

'img2.png',

'img2.png'

);

$pic_list = array_slice($pic_list, 0, 9); // 只操作前9个图片

$bg_w = 150; // 背景图片宽度

$bg_h = 150; // 背景图片高度

$background = imagecreatetruecolor($bg_w,$bg_h); // 背景图片

$color = imagecolorallocate($background, 202, 201, 201); // 为真彩色画布创建白色背景,再设置为透明

imagefill($background, 0, 0, $color);

imageColorTransparent($background, $color);

$pic_count = count($pic_list);

$lineArr = array(); // 需要换行的位置

$space_x = 3;

$space_y = 3;

$line_x = 0;

switch($pic_count) {

case 1: // 正中间

$start_x = intval($bg_w/4); // 开始位置X

$start_y = intval($bg_h/4); // 开始位置Y

$pic_w = intval($bg_w/2); // 宽度

$pic_h = intval($bg_h/2); // 高度

break;

case 2: // 中间位置并排

$start_x = 2;

$start_y = intval($bg_h/4) + 3;

$pic_w = intval($bg_w/2) - 5;

$pic_h = intval($bg_h/2) - 5;

$space_x = 5;

break;

case 3:

$start_x = 40; // 开始位置X

$start_y = 5; // 开始位置Y

$pic_w = intval($bg_w/2) - 5; // 宽度

$pic_h = intval($bg_h/2) - 5; // 高度

$lineArr = array(2);

$line_x = 4;

break;

case 4:

$start_x = 4; // 开始位置X

$start_y = 5; // 开始位置Y

$pic_w = intval($bg_w/2) - 5; // 宽度

$pic_h = intval($bg_h/2) - 5; // 高度

$lineArr = array(3);

$line_x = 4;

break;

case 5:

$start_x = 30; // 开始位置X

$start_y = 30; // 开始位置Y

$pic_w = intval($bg_w/3) - 5; // 宽度

$pic_h = intval($bg_h/3) - 5; // 高度

$lineArr = array(3);

$line_x = 5;

break;

case 6:

$start_x = 5; // 开始位置X

$start_y = 30; // 开始位置Y

$pic_w = intval($bg_w/3) - 5; // 宽度

$pic_h = intval($bg_h/3) - 5; // 高度

$lineArr = array(4);

$line_x = 5;

break;

case 7:

$start_x = 53; // 开始位置X

$start_y = 5; // 开始位置Y

$pic_w = intval($bg_w/3) - 5; // 宽度

$pic_h = intval($bg_h/3) - 5; // 高度

$lineArr = array(2,5);

$line_x = 5;

break;

case 8:

$start_x = 30; // 开始位置X

$start_y = 5; // 开始位置Y

$pic_w = intval($bg_w/3) - 5; // 宽度

$pic_h = intval($bg_h/3) - 5; // 高度

$lineArr = array(3,6);

$line_x = 5;

break;

case 9:

$start_x = 5; // 开始位置X

$start_y = 5; // 开始位置Y

$pic_w = intval($bg_w/3) - 5; // 宽度

$pic_h = intval($bg_h/3) - 5; // 高度

$lineArr = array(4,7);

$line_x = 5;

break;

}

foreach( $pic_list as $k=>$pic_path ) {

$kk = $k + 1;

if ( in_array($kk, $lineArr) ) {

$start_x = $line_x;

$start_y = $start_y + $pic_h + $space_y;

}

$pathInfo = pathinfo($pic_path);

switch( strtolower($pathInfo['extension']) ) {

case 'jpg':

case 'jpeg':

$imagecreatefromjpeg = 'imagecreatefromjpeg';

break;

case 'png':

$imagecreatefromjpeg = 'imagecreatefrompng';

break;

case 'gif':

default:

$imagecreatefromjpeg = 'imagecreatefromstring';

$pic_path = file_get_contents($pic_path);

break;

}

$resource = $imagecreatefromjpeg($pic_path);

// $start_x,$start_y copy图片在背景中的位置

// 0,0 被copy图片的位置

// $pic_w,$pic_h copy后的高度和宽度

imagecopyresized($background,$resource,$start_x,$start_y,0,0,$pic_w,$pic_h,imagesx($resource),imagesy($resource)); // 最后两个参数为原始图片宽度和高度,倒数两个参数为copy时的图片宽度和高度

$start_x = $start_x + $pic_w + $space_x;

}

header("Content-type: image/jpg");

imagejpeg($background);

imagegif($background, "./hero_gam.png");

?>

相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

如何用php 图片合成一张图片,怎么用PHP把多张图片合成一张相关推荐

  1. PIL实现两张图片合成一张,和图片加文字

    PIL实现两张图片合成一张,和图片加文字 文章目录: 一.PIL实现两张图片合成一张 1.方法一: 2.方法二 二.图片添加文字 首先说明一下: (小姐姐是谁,是my sweetheart ,请勿使用 ...

  2. 如何用计算机进行照片合成,不借助软件怎样将两张照片合成一张?一招教你搞定!...

    工作生活中经常要对图片进行排版和合成,很多朋友对于怎么把两张照片合成一张的操作比较陌生,网上虽说有很多工具,但要下载安装,然后还得研究使用方法,这样显得很麻烦.有什么办法不借助软件就可以将两张照片合成 ...

  3. 实用常识 | 如何将多张图片合成一张gif图片(使用Win10自带工具or利用Photoshop实现)

    今天遇到了一个需求,需要将多张图片合成一张gif图片,利用搜索引擎搜来搜去,尝试了很多在线的网页端工具,不过要么是有水印,要么是需付费,而且合成效果也不是很好,找来找去,Win10自带的视频合成工具也 ...

  4. 什么相片可以两张弄成一张_怎么将两张图片合成一张?

    有时候我们需要将两张图片放在一起相比较,但是两张图片相互切换对比起来比较困难,有没有什么办法将两张图片合成一张?方法是肯定有的,而且还是多种多样的,本文就给大家介绍一种对普通用户来说最简单方便快捷的方 ...

  5. 什么相片可以两张弄成一张_ps怎么把两张图片合成一张

    ps怎么把两张图片合成一张 图片应用在我们的生活中十分广泛,Photoshop似乎已经离不开我们的生活.点点滴滴回忆刻印成一张张图片.不过有不少网友却不知道ps怎么把两张图片合成一张,下文将一一为大家 ...

  6. php 自定义图片排版,照片拼图在线制作 自带多种照片拼图模板,自由排版将多张照片合成一张...

    照片拼图在线制作 自带多种照片拼图模板,自由排版将多张照片合成一张 相信大家在网上看到过很多类似照片拼图效果的图片,一张图片里面含有多张不同的照片,有的是排列有序,有的则是随意排版,效果看起来也是很美 ...

  7. android 两张电信_两张图片合成一张app-2张图片合成一张app下载1.2.9 官方安卓版-西西软件下载...

    两张图片合成一张app是一款可以把手机上的2张图片合成一张并且看不出是合成的图片的工具,玩转2张图片叠加,可以让你和偶像合照不是梦很逼真的!带你打造与众不同的作品!可以制作双重曝光效果的APP,带你打 ...

  8. C# 实现多张图片合成一张gif(录屏可能会用到)

    使用codeplex的GifCreator来操作 步骤: 一  获取动态链接库Gif.Components.dll 方式1:使用源码编译 第三方的源码地址如下:http://www.codeproje ...

  9. 如何将两张图片合成一张pdf

    在职场工作中,学会处理PDF文件是必不可少的技能.由于PDF文档的特殊性,许多新手在编辑PDF文件时往往不知道从何入手.比如一些非pdf格式的文件,像图片,在使用的时候被指定必须使用pdf格式的,这个 ...

  10. 微信小程序绘制海报,或者把多张图片合成一张

    微信小程序绘制海报,或者把多张图片合成一张,例子 <image style='height:{{mabgh}}px;width:{{mabgw}}px;' class="savepng ...

最新文章

  1. 深度学习环境配置指南:Pytorch、TensorFlow、Keras
  2. 关于一个js传值的错误
  3. Mybatis XML文件的异常
  4. django时间格式化加时区控制
  5. FLV播放器 源码二例
  6. VC6解决托盘菜单不消失
  7. 支付宝支付-常用支付API详解(查询、退款、提现等)-转
  8. 系统消息发现有新的未读消息弹框提示
  9. Linux与Windows共享文件夹之samba的安装与使用 资源管理器直接查看服务器文件
  10. 从数组创建ArrayList
  11. 软件自动化测试面试三部曲:第三是经验,第二是技术,第一是...
  12. ROS学习笔记八:创建ROS msg和srv
  13. Enterprise Solution(2.2.20130525) 解决方案配置与源代码下载
  14. 用cin解决有时输入两个,有时输三个变量
  15. for in和for of的区别(转)
  16. JAVA中方法和变量在继承中的覆盖和隐藏
  17. 零基础小白学Java 基础语法
  18. Flink学习之flink sql
  19. 计算机页面里的坚果云删不了怎么回事,坚果云 常见问题
  20. 【Windows包管理器(choco)】choco : 无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。

热门文章

  1. win10系统重装步骤详解
  2. 论文阅读>污垢检测:Vision-Based Dirt Detection and Adaptive Tiling Scheme for Selective Area Coverage
  3. CNT-以太网帧和IEEE802.3帧
  4. 物联网毕业设计 单片机指纹识别考勤系统设计与实现
  5. Minecraft Java版1.11_Editing Java版1.11-pre1
  6. Python3自定义包
  7. html5 webp,在 CRA 中使用 webp 图片提升加载性能
  8. 物联网嵌入式开发平台和开发流程
  9. IDEA社区版tomcat配置教程
  10. 移动硬盘安装manjaro 20.2以及常用软件安装