云樞智聯視角
關注互聯網,關注技術開發,透析與分享移動互聯網行業最新動態php圖片合成方法(多張圖片合成一張)
時間:2019-02-18 18:24:26 閱讀:15552次 分類:常見問題
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年,經過20多年定制開發經驗,積累了大量技術儲備和定制開發經驗,是一家集軟件研發、互聯網應用為一體的綜合信息技術服務提供商。公司擁有核心的策劃團隊和專業的技術研發團隊,致力于采用領先的信息技術,長期為涉及智慧園區/廠區/校園領域的各個企業提供快速、高效、安全的信息技術支持。公司立足智慧園區和智慧教育行業,通過軟硬件的研發和互聯網應用,疏通各企業間“端到端”的信息傳輸,靈活滿足智慧園區和智慧教育企業間不同用戶的需求,為其提供完善的信息化解決方案。
園區管理系統,提供智慧園區綜合管理系統,智慧園區設計方案咨詢,智慧園區管理系統、...