国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP圖片處理之多張圖片合成一張的實例

2020-03-22 18:50:57
字體:
來源:轉載
供稿:網友
PHP如何進行圖片處理呢?是否可以將多張圖片合成一張呢?本文就以PHP將多張圖片合成一張,來讓大家對PHP的圖片處理有更清晰的認識。

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 GD 圖像處理組件的常用函數總結

php 圖片操作類,支持生成縮略圖,添加水印,上傳縮略圖

很強的 PHP 圖片處理類

以上就是PHP圖片處理之多張圖片合成一張的實例的詳細內容,更多請關注 其它相關文章!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 胶南市| 武隆县| 千阳县| 义乌市| 武乡县| 金堂县| 新竹市| 大城县| 青海省| 五莲县| 信宜市| 金川县| 武城县| 怀远县| 富裕县| 谷城县| 陕西省| 碌曲县| 阳信县| 安福县| 个旧市| 乌海市| 克拉玛依市| 永川市| 八宿县| 玉林市| 大埔区| 工布江达县| 峨眉山市| 吴旗县| 广南县| 叶城县| 酒泉市| 青海省| 龙泉市| 广元市| 萝北县| 和田县| 望奎县| 武乡县| 正定县|