PHP函数应用三(文件操作-图片操作)

<?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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值