PHP图片处理技术-GD

1、开启GD扩展
extension=php_gd2.dll
Apache restart
2、示例:
场景:
制作500×300的绿色图片
①创建画布
画布,一种资源型数据。可以操作的图像资源。

创建新画布(新建)
 ImageCreate(宽,高),创建基于调色板的画布。
 imageCreateTrueColor(宽,高);创建真彩色的画布。
基于图片创建画布(打开)
 imageCreateFromJPEG(图片地址);
 imageCreateFromPNG(图片地址);
 imageCreateFromGIF(图片地址);
②操作画布
分配颜色:如果需要在画布上使用某个颜色,应该先将颜色分配到画布上。
使用函数:
 颜色标识 = imageColorAllocate(画布,R,G,B);
颜色的表示方式:
RGB
③填充画布:将填充点,连续并且颜色相同的点进行填充(替换)
使用函数:
 imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成
位置采用坐标进行管理:
原点:0,0,画布的左上角。
向右,x轴增加,向下Y轴增加。
右下角坐标:width-1,height-1
④输出画布
将画布中处理好的图样信息,输出出来。

典型的:
1输出到图片文件。
2直接输出。
使用函数:
imagePNG(画布[, 文件地址]):
imageJPEG();
imageGIF();
如果没有第二个参数,表示直接输出。
注:如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:
使用指令Content-type;
一个画布可以输出多次,输出为各种格式
⑤销毁画布资源
imageDestroy()


示例代码:
<?php
//例如:制作500×300的绿色图片
$width=500;
$height=300;
//创建真彩色的画布
$img=imageCreateTrueColor($width,$height);
// var_dump($img);    //测试结果: resource(2) of type (gd)   $img是一个资源类型
//使用函数imageColorAllocate(画布,R,G,B)分配颜色,颜色的表示方式:R  G  B
$green=imageColorAllocate($img, 0x0, 0xff, 0x0);
//填充画布,原点:0,0,画布的左上角,imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成
imageFill($img,0,0,$green);
//输出画布,直接输出到当前路径下为图片文件,格式有PNG、JPEG、GIF
//imagePNG($img,'./green.png');  //如果没有第二个参数,表示直接输出

//如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:使用指令Content-type
header('Content-Type:image/png;');
imagePNG($img);
//注:一个画布可以输出多次,输出为各种格式

//销毁画布资源
imageDestroy($img);


示例代码:

<?php
//例如:制作500×300的绿色图片
$width=500;
$height=300;
//创建真彩色的画布
$img=imageCreateTrueColor($width,$height);
// var_dump($img);    //测试结果: resource(2) of type (gd)   $img是一个资源类型
//使用函数imageColorAllocate(画布,R,G,B)分配颜色,颜色的表示方式:R  G  B
$green=imageColorAllocate($img, 0x0, 0xff, 0x0);
//填充画布,原点:0,0,画布的左上角,imageFill(画布, 填充位置x, 填充位置Y,颜色标识)完成
imageFill($img,0,0,$green);
//输出画布,直接输出到当前路径下为图片文件,格式有PNG、JPEG、GIF
//imagePNG($img,'./green.png');  //如果没有第二个参数,表示直接输出

//如果直接输出到浏览器,需要告知浏览器,响应数据的类型应该是PNG格式的图片:使用指令Content-type
header('Content-Type:image/png;');
imagePNG($img);
//注:一个画布可以输出多次,输出为各种格式

//销毁画布资源
imageDestroy($img);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值