php合并图片

在项目中需要把几张图片合并在一起,如下图

php合并图片

分别由头、身、腿三张图片合并起来

php合并图片php合并图片php合并图片

代码如下:

 1 function combineImage($head_img,$middle_img,$footer_img,$save_path){

 2     $source_w = 400;

 3     $source_h = 1142;

 4     //取头部图片大小

 5     $head_size = getimagesize($head_img);

 6     $head_height = $head_size['1'];

 7     $head_width = $head_size['0'];

 8     $head_start_x = floor(($source_w-$head_width)/2);//头部开始位置

 9     //取中间图片大小

10     $midd_size = getimagesize($middle_img);

11     $midd_height = $midd_size['1'];

12     $midd_width = $midd_size['0'];

13     $midd_start_y = $head_height-15;//中间开始Y坐标,因为头部的图片底部有空白,所以减去15

14     $midd_start_x = floor(($source_w-$midd_width)/2);

15     

16     //取底部图片大小

17     $foot_size = getimagesize($footer_img);

18     $foot_height = $foot_size[1];

19     $foot_width = $foot_size[0];

20     $foot_start_x = floor(($source_w-$foot_width)/2);//底部图片x坐标

21     $foot_start_y = $source_h-$foot_height;//底部图片y坐标

22     

23     $head = imagecreatefrompng($head_img);

24     $middle = imagecreatefrompng($middle_img);

25     $footer = imagecreatefrompng($footer_img);

26     

27     $bg_img = imageCreatetruecolor($source_w,$source_h);//生成背景图片

28     $color = imagecolorallocate($bg_img, 255, 255, 255); //设置白色背景

29     imagefill($bg_img, 0, 0, $color);//背景色填充

30     imageColorTransparent($bg_img, $color);//透明

31     imagecopyresampled($bg_img,$head,$head_start_x,0,0,0,$head_width,$head_height,$head_width,$head_height);

32     imagecopyresampled($bg_img,$middle,$midd_start_x , $midd_start_y,0,0,$midd_width,$midd_height,$midd_width,$midd_height);

33     imagecopyresampled($bg_img,$footer,$foot_start_x , $foot_start_y,0,0,$foot_width,$foot_height,$foot_width,$foot_height);

34     

35     imagepng($bg_img,$save_path );

36 }

37 $head = dirname(__FILE__).'/public/images/head.png';

38 $midd = dirname(__FILE__).'/public/images/midd1.png';

39 $foot = dirname(__FILE__).'/public/images/foot1.png';

40 $save_path = dirname(__FILE__)."/public/images/testcomblie.png";

41 combineImage($head,$midd,$foot,$save_path);

 

你可能感兴趣的:(PHP)