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);
以上就是(进阶篇)php图片处理技术-gd库的内容。