PHP 文字生成图片并与两张图片合成一张图片

<?php
ob_clean();
header('Content-type:image/png');
//如果遇到问题需要找bug,把header放最后
/*
$str = "1\n2\n3\n";
$im = imagecreate(100,120);
$white = imagecolorallocate($im,0xFF,0xFF,0xFF);
imagecolortransparent($im,$white);  //imagecolortransparent() 设置具体某种颜色为透明色,若注释
$black = imagecolorallocate($im,0x00,0x00,0x00);
 
imagettftext($im,15,0,50,40,$black,"simkai.ttf",$str); //字体设置部分linux和windows的路径可能不同
header("Content-type:image/png");
imagepng($im);//文字生成的图片
*/


//人物
$path_1 = "bbb.png";
//装备图片
$path_2 = "222.png";
//将人物和装备图片分别取到两个画布中
$image_1 = imagecreatefrompng($path_1);
$image_2 = imagecreatefrompng($path_2);
//创建一个和人物图片一样大小的真彩色画布(ps:只有这样才能保证后面copy装备图片的时候不会失真)
$image_3 = imageCreatetruecolor(imagesx($image_1),imagesy($image_1));
//为真彩色画布创建白色背景,再设置为透明
$color = imagecolorallocate($image_3, 255, 255, 255);
imagefill($image_3, 0, 0, $color);
imageColorTransparent($image_3, $color);
//首先将人物画布采样copy到真彩色画布中,不会失真
imagecopyresampled($image_3,$image_1,0,0,0,0,imagesx($image_1),imagesy($image_1),imagesx($image_1),imagesy($image_1));
//再将装备图片copy到已经具有人物图像的真彩色画布中,同样也不会失真
imagecopymerge($image_3,$image_2, 150,150,0,0,imagesx($image_2),imagesy($image_2), 100);
//将画布保存到指定的gif文件
imagegif($image_3);
?>

posted @ 2016-04-22 17:10  芯茹芷水  阅读(20993)  评论(0编辑  收藏  举报