廣豐視角

關注互聯網,關注技術開發,透析與分享移動互聯網行業最新動態

php圖片合成方法(多張圖片合成一張)

時間:2019-02-18 18:24:26    閱讀:14263次 分類:常見問題
1.多張圖片合成一張比如: 圖片合成,可以顯示在瀏覽器上面同時保存到文件夾下面 實例如下所示: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50...

1.多張圖片合成一張比如:

圖片合成,可以顯示在瀏覽器上面同時保存到文件夾下面

實例如下所示:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<?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圖片合成方法(多張圖片合成一張)就是小編分享給大家的全部內容了


蕪湖廣豐軟件有限公司(原中江網絡),成立于2005年,經過10多年定制開發經驗,積累了大量技術儲備和定制開發經驗,是一家集軟件研發、互聯網應用為一體的綜合信息技術服務提供商。公司擁有核心的策劃團隊和專業的技術研發團隊,致力于采用領先的信息技術,長期為涉及智慧園區/廠區/校園領域的各個企業提供快速、高效、安全的信息技術支持。公司立足智慧園區和智慧教育行業,通過軟硬件的研發和互聯網應用,疏通各企業間“端到端”的信息傳輸,靈活滿足智慧園區和智慧教育企業間不同用戶的需求,為其提供完善的信息化解決方案。

廣豐軟件,gf-yun.com,安徽軟件開發,圖片合成
廣豐軟件
智慧園區系統開發
最新資訊排行榜

欧美成人无砖专区一中文字目