婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP實現(xiàn)將幾張照片拼接到一起的合成圖片功能【便于整體打印輸出】

PHP實現(xiàn)將幾張照片拼接到一起的合成圖片功能【便于整體打印輸出】

熱門標簽:400電話申請辦理 福建高頻外呼防封系統(tǒng)哪家好 全國各省地圖標注點 外呼系統(tǒng)人工客服 網(wǎng)絡電話400申請 隨州銷售電銷機器人公司 周口網(wǎng)絡回撥外呼系統(tǒng) 百度地圖標注類型是酒店 商丘外呼系統(tǒng)好處

本文實例講述了PHP實現(xiàn)將幾張照片拼接到一起的合成圖片功能。分享給大家供大家參考,具體如下:

?php
/**
 * 作品合成程序
 * 針對單面,封面不做特殊處理
 */
$src_path = $argv[1]; // php該文件,第一個參數(shù)是文件夾名(作品集),可相對路徑
$dst_path = '../image/'.$src_path; // 生成文件存放的目標位置
if (!file_exists($dst_path)){
 mkdir($dst_path);
}
// 合成圖推薦大小,單頁大小建議:1120*1600
$g_width = 1120;
$g_height = 1600;
$g_border = 20; // 邊框
// 模板
// 圖片張數(shù)=>array(位置=>array(x,y,width,height))
$g_models = array(
 1=>array( // 單頁總張數(shù)
  0=>array( // 位置
   'x' => 0 + $g_border,
   'y' => 0 + $g_border,
   'w' => $g_width - 2*$g_border,
   'h' => $g_height - 2*$g_border,
  ),
 ),
 3=>array(
  0=>array(
   'x' => 0 + $g_border,
   'y' => 0 + $g_border,
   'w' => $g_width - 2*$g_border,
   'h' => ($g_height - 3*$g_border)/2,
  ),
  1=>array(
   'x' => 0 + $g_border,
   'y' => 0 + $g_border + ($g_height - 3*$g_border)/2 + $g_border,
   'w' => ($g_width - 3*$g_border)/2,
   'h' => ($g_height - 3*$g_border)/2,
  ),
  2=>array(
   'x' => 0 + $g_border + ($g_width - 3*$g_border)/2 + $g_border,
   'y' => 0 + $g_border + ($g_height - 3*$g_border)/2 + $g_border,
   'w' => ($g_width - 3*$g_border)/2,
   'h' => ($g_height - 3*$g_border)/2,
  ),
 ),
 4=>array(
  0=>array(
   'x' => 0 + $g_border,
   'y' => 0 + $g_border,
   'w' => ($g_width-3*$g_border)/2,
   'h' => ($g_height-3*$g_border)/2,
  ),
  1=>array(
   'x' => 0 + $g_border + ($g_width-3*$g_border)/2 + $g_border,
   'y' => 0 + $g_border,
   'w' => ($g_width-3*$g_border)/2,
   'h' => ($g_height-3*$g_border)/2,
  ),
  2=>array(
   'x' => 0 + $g_border,
   'y' => 0 + $g_border + ($g_height-3*$g_border)/2 + $g_border,
   'w' => ($g_width-3*$g_border)/2,
   'h' => ($g_height-3*$g_border)/2,
  ),
  3=>array(
   'x' => 0 + $g_border + ($g_width-3*$g_border)/2 + $g_border,
   'y' => 0 + $g_border + ($g_height-3*$g_border)/2 + $g_border,
   'w' => ($g_width-3*$g_border)/2,
   'h' => ($g_height-3*$g_border)/2,
  ),
 ),
);
// 排版
$g_tasks = array(
 0 => array(0), // 封面封底
 1 => array(1),
 2 => array(2),
 3 => array(3),
 4 => array(4,5,6),
 5 => array(7),
 6 => array(8),
 7 => array(9,10,11),
 8 => array(12),
 9 => array(13),
 10 => array(14,15,16),
 11 => array(17),
 12 => array(18),
 13 => array(19,20,21),
 14 => array(22),
 15 => array(23),
 16 => array(24,25,26),
 17 => array(27,28,29),
 18 => array(30),
 19 => array(31),
 20 => array(32,33,34),
 21 => array(35),
 22 => array(36),
 23 => array(37),
 24 => array(38,39,40,41),
 25 => array(42,43,44),
 26 => array(45),
 27 => array(46),
 28 => array(47,48,49),
 29 => array(50),
 30 => array(51),
);
// 獲取文件夾下的所有圖片名
$jpgs = array();
$files = scandir($src_path); // 目錄下所有文件名
foreach($files as $file){
 $path_parts = pathinfo($src_path.'/'.$file);
 if($path_parts['extension'] == 'jpg'){
  $jpgs[] = $src_path.'/'.$file;
 }
}
// 判斷圖片總數(shù)
if(count($jpgs) != 52){
 echo '圖片總數(shù)有誤:'.count($jpgs).'/52'.nl2br("\n");
 die();
}
// 自然排序
usort($jpgs, "strnatcmp");
foreach($g_tasks as $page=>$photos){
 $files = array();
 foreach($photos as $r){
  $files[] = $jpgs[$r];
 }
 $image_all = imagemake($files);
 $filename = $page.'.jpg';
 imagejpeg($image_all, $dst_path.'/'.$filename);
 unset($files);
 echo $filename.nl2br("\n");
}
echo 'ok'.nl2br("\n");
die();
/**
 * 合成圖片
 * @param array $images 本頁圖片集合
 * @return resource 合成后的圖片
 */
function imagemake($files=array()){
 global $g_width,$g_height,$g_models;
 // 合成后的圖片
 $image_all = imageCreatetruecolor($g_width,$g_height);
 // 為真彩色畫布創(chuàng)建白色背景
 $color = imagecolorallocate($image_all, 255, 255, 255);
 imagefill($image_all, 0, 0, $color);
// imageColorTransparent($image_all, $color); // 背景透明
 //function imagecopyresampled ($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)
 // 排版合成
 $type = count($files);
 switch($type){
  case 2:
   break;
  case 1:
  case 3:
  case 4:
   // 用于合成的圖片集
   $images = array();
   // 修正圖片
   for($i=0;$i$type;$i++){
    $images[] = imagecropper($files[$i],$g_models[$type][$i]['w'],$g_models[$type][$i]['h']);
   }
   // 排版合成
   for($i=0;$i$type;$i++){
    imagecopyresampled($image_all,$images[$i],
     $g_models[$type][$i]['x'],$g_models[$type][$i]['y'],0,0,
     $g_models[$type][$i]['w'],$g_models[$type][$i]['h'],imagesx($images[$i]),imagesy($images[$i]));
   }
   break;
  default:
   break;
 }
 return $image_all;
}
/**
 * 修剪圖片:居中裁剪等比縮放
 * @param $source_path 原圖路徑
 * @param $target_width 目標寬度
 * @param $target_height 目標高度
 * @return bool|resource
 */
function imagecropper($source_path, $target_width, $target_height){
 $source_info = getimagesize($source_path);
 $source_width = $source_info[0];
 $source_height = $source_info[1];
 $source_mime = $source_info['mime'];
 $source_ratio = $source_height / $source_width;
 $target_ratio = $target_height / $target_width;
 switch ($source_mime)
 {
  case 'image/gif':
   $source_image = imagecreatefromgif($source_path);
   break;
  case 'image/jpeg':
   $source_image = imagecreatefromjpeg($source_path);
   break;
  case 'image/png':
   $source_image = imagecreatefrompng($source_path);
   break;
  default:
   return false;
   break;
 }
 // 橫豎構圖不同,旋轉
 if(($target_width-$target_height)*($source_width-$source_height)0){
  // 旋轉
  $source_image = imagerotate($source_image, 90, 0);
  $source_width = $source_info[1]; // [0]
  $source_height = $source_info[0]; // [1]
  $source_ratio = $source_height / $source_width;
 }
 // 源圖過高
 if ($source_ratio > $target_ratio)
 {
  $cropped_width = $source_width;
  $cropped_height = $source_width * $target_ratio;
  $source_x = 0;
  $source_y = ($source_height - $cropped_height) / 2;
 }
 // 源圖過寬
 elseif ($source_ratio  $target_ratio)
 {
  $cropped_width = $source_height / $target_ratio;
  $cropped_height = $source_height;
  $source_x = ($source_width - $cropped_width) / 2;
  $source_y = 0;
 }
 // 源圖適中
 else
 {
  $cropped_width = $source_width;
  $cropped_height = $source_height;
  $source_x = 0;
  $source_y = 0;
 }
 $target_image = imagecreatetruecolor($target_width, $target_height);
 $cropped_image = imagecreatetruecolor($cropped_width, $cropped_height);
 // 裁剪
 imagecopy($cropped_image, $source_image, 0, 0, $source_x, $source_y, $cropped_width, $cropped_height);
 // 縮放
 imagecopyresampled($target_image, $cropped_image, 0, 0, 0, 0, $target_width, $target_height, $cropped_width, $cropped_height);
 return $target_image;
}

PS:該代碼應用于命令行模式,且需要注意圖片文件夾路徑。

更多關于PHP相關內(nèi)容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《php面向對象程序設計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》及《PHP數(shù)學運算技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP使用 Imagick 擴展實現(xiàn)圖片合成,圓角處理功能示例
  • php圖片合成方法(多張圖片合成一張)
  • PHP將身份證正反面兩張照片合成一張圖片的代碼
  • PHP基于imagick擴展實現(xiàn)合成圖片的兩種方法【附imagick擴展下載】
  • PHP基于php_imagick_st-Q8.dll實現(xiàn)JPG合成GIF圖片的方法
  • php curl優(yōu)化下載微信頭像的方法總結
  • PHP仿微信多圖片預覽上傳實例代碼
  • PHP實現(xiàn)微信圖片上傳到服務器的方法示例
  • 微信小程序上傳圖片到php服務器的方法
  • PHP 圖片合成、仿微信群頭像的方法示例

標簽:六安 佛山 樂山 海南 十堰 南寧 定西 迪慶

巨人網(wǎng)絡通訊聲明:本文標題《PHP實現(xiàn)將幾張照片拼接到一起的合成圖片功能【便于整體打印輸出】》,本文關鍵詞  PHP,實,現(xiàn)將,幾張,照片,拼接,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP實現(xiàn)將幾張照片拼接到一起的合成圖片功能【便于整體打印輸出】》相關的同類信息!
  • 本頁收集關于PHP實現(xiàn)將幾張照片拼接到一起的合成圖片功能【便于整體打印輸出】的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产色91在线| 国内精品视频一区二区三区八戒| 国产精品自拍在线| 国产一区二区视频在线播放| 极品销魂美女一区二区三区| 激情综合网激情| 成人97人人超碰人人99| 色综合久久中文字幕综合网| 欧美中文字幕一区| 久久久久久久久久久久电影| 亚洲精品乱码久久久久久黑人 | 亚洲欧美另类综合偷拍| 亚洲女厕所小便bbb| 免费亚洲电影在线| 成人污污视频在线观看| 99视频一区二区| 欧美xxxxx牲另类人与| 亚洲精品成人少妇| 国产成人在线视频网址| 欧美日韩一区二区三区免费看| 91精品国产综合久久久久久漫画 | 久久久91精品国产一区二区三区| 婷婷久久综合九色国产成人| 激情都市一区二区| 欧美亚洲日本一区| 亚洲精品久久久久久国产精华液| 亚洲午夜私人影院| av中文字幕亚洲| 日韩一区二区麻豆国产| 亚洲精品免费在线观看| 国产精品影视网| 欧美电影精品一区二区 | 首页综合国产亚洲丝袜| 白白色亚洲国产精品| 国产欧美日韩在线| 麻豆91在线观看| 色噜噜狠狠成人中文综合| 国产午夜精品久久久久久免费视 | 国产精品久久久久久久久晋中| 国产一区福利在线| 成人av一区二区三区| 亚洲免费伊人电影| 欧美一区二区久久| 国产精品一级片| 中文字幕一区不卡| 在线观看亚洲一区| 精品在线播放午夜| 亚洲伦在线观看| 日韩丝袜美女视频| 波多野结衣91| 久久精品国产精品亚洲精品| 亚洲国产精品黑人久久久| 在线视频一区二区三区| 免费精品99久久国产综合精品| 7777精品伊人久久久大香线蕉经典版下载 | 国产亚洲福利社区一区| 一本色道**综合亚洲精品蜜桃冫| 精彩视频一区二区三区| 三级影片在线观看欧美日韩一区二区| 美女mm1313爽爽久久久蜜臀| 中文乱码免费一区二区| 欧美精品一级二级| 日韩专区欧美专区| 91极品视觉盛宴| 轻轻草成人在线| 中文在线一区二区 | 成人免费av在线| 免费亚洲电影在线| 亚洲va在线va天堂| 亚洲午夜免费电影| 国产亚洲欧美中文| 久久蜜桃av一区二区天堂| 欧美二区在线观看| 日韩欧美在线影院| 国产乱人伦精品一区二区在线观看| 欧美va亚洲va| 岛国av在线一区| 午夜伦理一区二区| 精品国产亚洲一区二区三区在线观看 | 亚洲a一区二区| 三级精品在线观看| 国产精品系列在线播放| 日韩视频免费观看高清在线视频| 91成人在线观看喷潮| 日本高清免费不卡视频| 成人a区在线观看| 青草国产精品久久久久久| 日本sm残虐另类| 日韩精品电影一区亚洲| 一区二区三区在线不卡| 亚洲人xxxx| 亚洲精品视频在线观看网站| 精品裸体舞一区二区三区| 欧美日韩免费视频| 91久久一区二区| 91精品综合久久久久久| 久久久美女毛片| 日韩伦理免费电影| 亚洲成av人片一区二区梦乃| 激情欧美日韩一区二区| 国产麻豆欧美日韩一区| 欧美色老头old∨ideo| 久久色在线视频| 午夜久久福利影院| 91网站黄www| 欧美蜜桃一区二区三区| 亚洲国产高清不卡| 亚洲综合小说图片| 久久99国产精品麻豆| 国产91精品欧美| 国产日韩欧美电影| 日韩福利视频导航| 91久久国产综合久久| 精品福利一二区| 日本特黄久久久高潮| 欧美夫妻性生活| 亚洲小说欧美激情另类| 成人精品视频一区二区三区尤物| 日韩午夜精品视频| 国产精品一品二品| 国产欧美一区二区精品性色 | 国产精品久久久久久一区二区三区 | 国产精品福利一区| 成人在线视频一区二区| 欧美三区在线观看| 一区二区成人在线观看| 在线成人av影院| 精品在线一区二区三区| 国产嫩草影院久久久久| 波多野结衣一区二区三区| 久久久久国产一区二区三区四区| 国产精品一色哟哟哟| 亚洲欧美偷拍另类a∨色屁股| 日本精品一级二级| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久久另类综合| 色88888久久久久久影院按摩 | 欧美日韩精品一区二区在线播放| 日韩精品一区第一页| 国产精品女主播av| 91麻豆精品国产91久久久使用方法| 精品一区二区三区在线视频| 国产日韩欧美在线一区| 欧美日韩高清影院| 91在线丨porny丨国产| 亚洲在线免费播放| 欧美在线不卡视频| 亚洲少妇30p| 亚洲精品在线免费观看视频| 成人午夜免费av| 免费日韩伦理电影| 久久亚洲精精品中文字幕早川悠里| 欧美色图一区二区三区| 国产福利一区二区| 乱一区二区av| 国产精品二三区| 中文字幕欧美区| 中文字幕在线播放不卡一区| 欧美精品在线一区二区三区| 日本不卡123| 欧洲精品一区二区三区在线观看| 国产无人区一区二区三区| 欧美巨大另类极品videosbest | 成人毛片老司机大片| 丁香婷婷综合五月| 成人激情av网| 99re这里都是精品| 国产揄拍国内精品对白| 成人国产免费视频| 99精品久久99久久久久| 91麻豆免费观看| 欧美日韩一区中文字幕| 欧美日韩三级在线| 久久久精品综合| 亚洲精品高清视频在线观看| 美腿丝袜亚洲色图| 99久久精品国产网站| 在线免费观看成人短视频| 日韩欧美中文字幕公布| 国产精品日日摸夜夜摸av| 亚洲成人免费av| 成人毛片视频在线观看| 欧美一级在线视频| 一区二区三区四区高清精品免费观看 | 一本一道综合狠狠老| 欧美不卡在线视频| 亚洲成人你懂的| 91色porny| 欧美国产成人精品| 免费成人美女在线观看.| 97久久精品人人做人人爽50路| 欧美妇女性影城| 亚洲一区成人在线| 在线欧美日韩精品| 中文字幕在线不卡一区 | 欧美国产1区2区| 国产做a爰片久久毛片| 欧美一区日韩一区| 午夜精彩视频在线观看不卡| 欧美在线视频你懂得|