php图像处理缩略图,PHP中gd库图像处理技术(制作水印,缩略图等)

本文详细介绍了PHP GD库的使用,包括如何创建和操作画布,如imagecreate、imagecreatetruecolor、imagefill等函数。还展示了如何画线、画矩形、写字、制作水印和缩略图等图像处理技巧,并提供了具体的代码示例。通过这些方法,开发者可以轻松地在PHP中进行图像处理和创建动态图像。
摘要由CSDN通过智能技术生成

使用gd库之前,请确认php开启了gd扩展

phpinfo()

如果搜索gd,发现enabled(支持),即可。

GD Support

enabled

创建画布相关方法

imagecreate 创建画布

imagecreatetruecolor 创建一个真彩色画布

imagecreatefromjpeg 根据一张已有的jpeg图片创建画布

imagecreatefromgif 根据一张已有的gif图片创建画布

imagecreatefrompng 根据一张已有的png图片创建画布

画布相关操作函数

imagecolorallocate 分配一个颜色

imagefill 向画布填充颜色

imageline 画线段操作

imagerectangle 画矩形

imagearc 画圆弧线段

imagestring 根据系统字体写字

imagettftext 根据ttf格式的字体写字

图像输出相关函数

imagejpeg 以jpeg的格式输出图片到浏览器或保存成文件

imagepng 以png的格式输出图片到浏览器或保存成文件

imagegif 以gif的格式输出图片到浏览器或保存成文件

关闭画布操作

imagedestroy 销毁画布资源

辅助图像操作函数

imagesx 获得图片的宽度

imagesy 获得图片的高度

getimagesize 获得图片的宽度和高度等信息

创建有颜色的画布

//创建真彩画布

$canvas = imagecreatetruecolor(500,300);

//分配颜色

$color = imagecolorallocate($canvas, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//填充颜色

imagefill($canvas,0,0,$color);

//告诉浏览器是图片

header("Content-type:image/jpg");

//输出图片

imagejpeg($canvas);

//保存图片

imagejpeg($canvas,"a.jpg");

画矩形

//创建真彩画布

$canvas = imagecreatetruecolor(500,300);

//分配颜色

$color = imagecolorallocate($canvas, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//填充颜色

imagefill($canvas,0,0,$color);

//获取画矩形的颜色

$color = imagecolorallocate($canvas, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//画矩形

imagerectangle($canvas,200,100,300,200,$color);

//告诉浏览器是图片

header("Content-type:image/jpg");

//输出图片

imagejpeg($canvas);

//保存图片

imagejpeg($canvas,"a.jpg");

//关闭画布资源

imagedestroy($canvas);

写字

//创建真彩画布

$canvas = imagecreatetruecolor(500,300);

//分配颜色

$color = imagecolorallocate($canvas, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//填充颜色

imagefill($canvas,0,0,$color);

//获取画矩形的颜色

$color = imagecolorallocate($canvas, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//画矩形

imagerectangle($canvas,200,100,300,200,$color);

//获取字体的颜色

$color = imagecolorallocate($canvas, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255));

//写字

imagestring($canvas, 20, 250, 150, "你好中国", $color);

//告诉浏览器是图片

header("Content-type:image/jpg;charset=utf8");

//输出图片

imagejpeg($canvas);

//保存图片

imagejpeg($canvas,"a.jpg");

//关闭画布资源

imagedestroy($canvas);

制作水印

imagecopymerge(目标图像,水印图像,目标x,目标y,水印x,水印y,水印截取x,水印截取y,水印透明度)

1)根据目标图片打开一个画布;

2)根据logo图片打开一个画布;

3)在目标图片上选择一个坐标基点;

4)在logo图片上也选择一个坐标基点(0,0坐标点);

5)将logo图片拖拽到目标图片中,并且将两个坐标基点对齐;

6)调整* logo图片的透明度;

7)保存图片;

8)关闭目标图片和logo图片的画布;

//打开目标图片

$dst = imagecreatefromjpeg("./a.jpg");

//打开水印图片

$pic = imagecreatefrompng("./b.png");

//获取水印图片的宽高

$w = imagesx($pic);

$h = imagesy($pic);

//进行合并两张图

imagecopymerge($dst, $pic, 100, 100, 0, 0, $w, $h, 30);

//进行浏览器设置

header("Content-type:image/jpeg");

//输出图片

imagejpeg($dst);

//保存图片

imagejpeg($dst,"c.jpg");

//关闭画布资源

imagedestroy($dst);

imagedestroy($pic);

制作缩略图

imagecopyresampled(画布,资源图片,画布x,画布y,图像x,图像y,截取画布x,截取画布y,图像x,图像y)

1)根据固定的宽度和高度创建一个目标画布;(200*100)

2)根据一张需要缩小的图片创建一个图像画布;

3)在目标画布上选择一个坐标基点(0,0坐标点);

4)在图像画布上也选择一个坐标基点(0,0坐标点);

5)将图像画布复制到目标画布中,并且将两个基点对齐;

6)调整图像画布的宽度和高度 与 目标画布的宽度和高度一致;

7)保存图像;

8)关闭目标画布和图像画布;

//创建画布

$canvas = imagecreatetruecolor(200, 100);

//打开资源画布

$resource = imagecreatefromjpeg("./a.jpg");

//使用缩略图函数

imagecopyresampled($canvas,$resource,0,0,0,0,200,100,imagesx($resource),imagesy($resource));

//输出图像到浏览器

header("Content-type:image/jpeg");

//输出

imagejpeg($canvas);

//保存

imagejpeg($canvas,"./b.jpg");

//销毁画布资源

imagedestroy($canvas);

imagedestroy($resource);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值