<?php
//合并图片
// ob_clean();
header('Content-type:image/png');
//人物
$path_1 = "image.jpg";
//装备图片
$path_2 = "qrcode.png";
//将人物和装备图片分别取到两个画布中
$image_1 = imagecreatefromjpeg($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, $qrleft,$qrtop,0,0,imagesx($image_2),imagesy($image_2), 100);
imagecopymerge($image_3,$image_2, 100,100,0,0,imagesx($image_2),imagesy($image_2), 100);
//将画布保存到指定的gif文件
$img=time()."-promoter.png";
imagepng($image_3,$img);
// 在浏览器输出图片
$info = getimagesize($img);
$imgExt = image_type_to_extension($info[2], false); //获取文件后缀
$fun = "imagecreatefrom{$imgExt}";
$imgInfo = $fun($img); //1.由文件或 URL 创建一个新图象。如:imagecreatefrompng ( string $filename )
//$mime = $info['mime'];
$mime = image_type_to_mime_type(exif_imagetype($img)); //获取图片的 MIME 类型
header('Content-Type:'.$mime);
$quality = 100;
if($imgExt == 'png') $quality = 9; //输出质量,JPEG格式(0-100),PNG格式(0-9)
$getImgInfo = "image{$imgExt}";
$getImgInfo($imgInfo, null, $quality); //2.将图像输出到浏览器或文件。如: imagepng ( resource $image )
imagedestroy($imgInfo);
// return $img;
?>
1、由文件或 URL 创建一个新图象,成功后返回图像资源,失败后返回false。
imagecreatefromjpeg($jpg)
2、由文件或 URL 创建一个新图象,成功后返回图像资源,失败后返回false。
imagecreatefrompng($png)
3、获取图片宽度
imagesx($jpg)
4、获取图片高度
imagesy($jpg)
5、新建一个真彩色画布
imageCreatetruecolor($jpg)
6、把图像资源放到画布上,
第一参数创建的画布,第二参数图像资源,第三参数为画布起点x轴坐标,第四参数为画布起点y轴坐标,第五参数为图像资源起点x轴坐标,
第六参数为图像资源起点y轴坐标,第七参数为画布宽度,第八参数为画布高度,第九参数为图像资源宽度,第十参数为图像资源高度,
成功时返回true, 或者在失败时返回 false。
dst_image 目标图象连接资源。
src_image 源图象连接资源。
dst_x 目标 X 坐标点。
dst_y 目标 Y 坐标点。
src_x 源的 X 坐标点。
src_y 源的 Y 坐标点。
dst_w 目标宽度。
dst_h 目标高度。
src_w 源图象的宽度。
src_h 源图象的高度。
imagecopyresampled($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h)
7、拷贝并合并图像的一部分
第一参数创建的画布,第二参数被拷贝的图像资源,第三参数为画布起点x轴坐标,第四参数为画布起点y轴坐标,第五参数为被拷贝的图像资源起点x轴坐标,
第六参数为被拷贝的图像资源起点y轴坐标,第七参数为拷贝宽度,第八参数为拷贝高度,第九参数为图像合并程度,取值0-100,当pct=0 时,什么也没做,反之完全合并
成功时返回true, 或者在失败时返回 false。
dst_image 目标图像
src_image 被拷贝的源图像
dst_x 目标图像开始 x 坐标
dst_y 目标图像开始 y 坐标,x,y同为 0 则从左上角开始
src_x 拷贝图像开始 x 坐标
src_y 拷贝图像开始 y 坐标,x,y同为 0 则从左上角开始拷贝
src_w (从 src_x 开始)拷贝的宽度
src_h (从 src_y 开始)拷贝的高度
pct 图像合并程度,取值 0-100 ,当 pct=0 时,实际上什么也没做,反之完全合并。
imagecopymerge($dst_image,$src_image,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$pct)
8、将图像输出到浏览器或文件
image 欲输出的图像资源,如 imagecreate() 或 imagecreatefrom 系列函数的返回值
filename 可选,指定输出图像的文件名。如果省略,则原始图像流将被直接输出。
quality 可选,指定图像质量,范围从 0(最差质量,文件最小)到 100(最佳质量,文件最大),默认75 ,imagejpeg() 独有参数
foreground 可选,指定前景色,默认前景色是黑色,imagewbmp() 独有参数
imagegif($jpg) 以 GIF 格式将图像输出到浏览器或文件
imagejpeg($jpg) 以 JPEG 格式将图像输出到浏览器或文件
imagepng($jpg) 以 PNG 格式将图像输出到浏览器或文件
imagewbmp($jpg) 以 WBMP 格式将图像输出到浏览器或文件
9、获取图像大小及相关信息
getimagesize($jpg)
返回结果为
Array
(
[0] => 290
[1] => 69
[2] => 3
[3] => width="290" height="69"
[bits] => 8
[mime] => image/png
)
10、根据指定的图像类型返回对应的图像后缀名
image_type_to_extension($info)
11、判断一个图像的类型
exif_imagetype($jpg)
12、取得 getimagesize,exif_read_data,exif_thumbnail,exif_imagetype 所返回的图像类型的 MIME 类型
image_type_to_mime_type($jpg)
13、销毁图像
imagedestroy($jpg)
14、获取图像的缩略图,第一参数可以是文件的路径,也可以是流资源,第二参数返回的缩略图的宽度,第三参数返回的缩略图的高度,第四参数返回的缩略图的类型
exif_thumbnail($jpg)