PHP中多张图片合成一张图片例子
今天分享一段PHP中多张图片合成一张图片的代码实现,我们可以在图片合成,水印,九宫格等需求下使用到类似这样的图片合成效果,下面一起来看看例子吧.
例子代码如下:
- $imgs = array();
- $imgs[0] = '1.jpg';
- $imgs[1] = '2.jpg';
- $imgs[2] = '3.jpg';
- $imgs[3] = '4.jpg';
- $target = 'emp.jpg';//背景图片
- $target_img = Imagecreatefromjpeg($target);
- $source= array();
- foreach ($imgs as $k=>$v){
- $source[$k]['source'] = Imagecreatefromjpeg($v);
- $source[$k]['size'] = getimagesize($v);
- }
- //imagecopy ($target_img,$source[0]['source'],2,2,0,0,$source[0]['size'][0],$source[0]['size'][1]);
- //imagecopy ($target_img,$source[1]['source'],250,2,0,0,$source[1]['size'][0],$source[1]['size'][1]);
- $num1=0;
- $num=3; //控制列数,一行几列,0为1以此类推。
- $tmp=2;
- $tmpy=2; //图片之间的间距
- for ($i=0; $i<4; $i++){
- imagecopy($target_img,$source[$i]['source'],$tmp,$tmpy,0,0,$source[$i]['size'][0],$source[$i]['size'][1]);
- $tmp = $tmp+$source[$i]['size'][0];
- $tmp = $tmp+5; //开源软件:phpfensi.com
- if($i==$num){
- $tmpy = $tmpy+$source[$i]['size'][1];
- $tmpy = $tmpy+5;
- $tmp=2;
- $num=$num+3;
- }
- }
- Imagejpeg($target_img,'pin.jpg');
- ?>
- <img src="pin.jpg">