21,893
社区成员




$path_1 = "http://avatar.csdn.net/1/5/3/1_bccu.jpg";
//装备图片
$path_2 = "http://avatar.csdn.net/5/7/1/1_phpnewnew.jpg";
//将人物和装备图片分别取到两个画布中
$image_1 = imagecreatefromstring(file_get_contents($path_1));
$image_2 = imagecreatefromstring(file_get_contents($path_2));
// Rotate
$image_2 = imagerotate($image_2, 50, imagecolorallocatealpha($image_2, 0x00, 0x00, 0x00, 0));
//创建一个和人物图片一样大小的真彩色画布(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));
imagecolortransparent($image_2, imagecolorat($image_2, 0, 0));
//再将装备图片copy到已经具有人物图像的真彩色画布中,同样也不会失真
imagecopymerge($image_3,$image_2, 20,20,0,0,imagesx($image_2),imagesy($image_2), 100);
//将画布保存到指定的gif文件
#设置水印字体颜色
$color = imagecolorallocatealpha($image_3,0,0,0,100);
#设置字体文件路径
$fff = "c:/windows/fonts/arial.ttf";
#水印文字
$str = "test";
$str = iconv( 'utf-8','gbk', $str);
#打水印
imagettftext($image_3,20,20,20,100,$color,$fff,$str);
imagejpeg($image_3);