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

首頁 > 編程 > PHP > 正文

怎么用PHP把多張圖片合成一張

2020-03-22 18:57:31
字體:
供稿:網(wǎng)友
這里的合成是多張圖片合成在一張里,不是合成為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); // 為真彩色畫布創(chuàng)建白色背景,再設(shè)置為透明 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)); // 最后兩個參數(shù)為原始圖片寬度和高度,倒數(shù)兩個參數(shù)為copy時的圖片寬度和高度  $start_x = $start_x + $pic_w + $space_x; }   header("Content-type: image/jpg"); imagejpeg($background); imagegif($background, "./hero_gam.png");   ?>


相信看了這些案例你已經(jīng)掌握了方法,更多精彩請關(guān)注 其它相關(guān)文章!

相關(guān)閱讀:

php合成或者創(chuàng)建gif動畫

php imagick 擴展合成圖片的兩張方法_PHP教程

GD 函數(shù)合成圖片有關(guān)問題(一張jpg,一張png)

以上就是怎么用PHP把多張圖片合成一張的詳細內(nèi)容,更多請關(guān)注 其它相關(guān)文章!

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 邻水| 巨鹿县| 通州市| 祥云县| 吉木萨尔县| 独山县| 禄丰县| 无棣县| 阜新市| 泗阳县| 班玛县| 安宁市| 怀柔区| 剑川县| 夏河县| 安阳县| 通辽市| 满洲里市| 徐闻县| 清水河县| 垦利县| 诸城市| 长丰县| 璧山县| 宁陵县| 革吉县| 罗田县| 安丘市| 剑阁县| 潞城市| 贡觉县| 盐城市| 德庆县| 延安市| 青阳县| 阿合奇县| 桓仁| 寻甸| 海城市| 剑河县| 通渭县|