• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    php图片合成方法(多张图片合成一张)
    POST TIME:2021-10-18 05:17

    1.多张图片合成一张比如:

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

    实例如下所示:

    ?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使用 Imagick 扩展实现图片合成,圆角处理功能示例
    • PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
    • PHP将身份证正反面两张照片合成一张图片的代码
    • PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
    • PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
    • php curl优化下载微信头像的方法总结
    • PHP仿微信多图片预览上传实例代码
    • PHP实现微信图片上传到服务器的方法示例
    • 微信小程序上传图片到php服务器的方法
    • PHP 图片合成、仿微信群头像的方法示例
    上一篇:PHP简单实现二维数组的矩阵转置操作示例
    下一篇:PHP基于curl post实现发送url及相关中文乱码问题解决方法
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信