php GD库的简单使用(创建图像及简单处理 / 保存图像文件 / 输出到浏览器)

前言

GD 库是 PHP 处理图形的扩展库,GD 库提供了一系列用来处理图片的 API,使用 GD 库可以处理图片或者生成图片,还可以直接输入到浏览器中,也可以给图片加水印、做验证码等等。

截至目前,如果你使用 phpstudy 集成的环境,那么 GD 库无需安装,如果你手动配置的 PHP 服务器,那么你需要繁琐的安装步骤,这里暂不做介绍。

创建图像及简单处理

下面,我们使用 GD 库提供的函数,来完成这样一个图片:

  • 图像大小(像素):100 x 100
  • 图像背景颜色:黑色
  • 图像格式:png
  • 图像处理:画一个对角线
    在这里插入图片描述
<?php

# 1. 创建画布
$img = imagecreatetruecolor(100, 100);//宽(x)高(y)为100

# 2. 定义一些颜色备用(用于后面的画布处理)
$black = imagecolorallocate($img, 0, 0, 0);//黑色(背景)
$red = imagecolorallocate($img, 255, 0, 0);//红色(对角线)

# 3. 填充画布背景颜色
imagefill($img, 100, 100, $black);//填充画布颜色为黑色

# 4. 对画布做一些处理(对角线画一条红线)
imageline($img, 0,0, 100,100, $red);

# 5. 释放图像(销毁)
imagedestroy($img);//释放内存

?>

别急,上述代码运行后你看不到任何结果,虽然我们完成了图像的创建与处理,但没有指定 “输出方式”,固然没有显示结果。 下面我们来做显示。

保存图像文件

顾名思义,将我们刚刚做好的图像,保存到文件夹中。

<?php

# 1. 创建画布
$img = imagecreatetruecolor(100, 100);//宽(x)高(y)为100

# 2. 定义一些颜色备用(用于后面的画布处理)
$black = imagecolorallocate($img, 0, 0, 0);//黑色(背景)
$red = imagecolorallocate($img, 255, 0, 0);//红色(对角线)

# 3. 填充画布背景颜色
imagefill($img, 100, 100, $black);//填充画布颜色为黑色

# 4. 对画布做一些处理(对角线画一条红线)
imageline($img, 0,0, 100,100, $red);

# 5. 保存到文件夹中(默认存放路径为该php文件所在目录)
imagepng($img, "./GD.png");//文件名为GD.png

# 6. 释放图像(销毁)
imagedestroy($img);//释放内存

?>

运行以上代码,然后在浏览器中刷新一次(没有任何提示及显示),然后查看该 php 所在的文件夹中是否多出了一个 GD.png 文件,双击打开预览。
在这里插入图片描述

输出到浏览器

顾名思义,即不保存该文件,而是直接在浏览器查看。

<?php

# 1. 创建画布
$img = imagecreatetruecolor(100, 100);//宽(x)高(y)为100

# 2. 定义一些颜色备用(用于后面的画布处理)
$black = imagecolorallocate($img, 0, 0, 0);//黑色(背景)
$red = imagecolorallocate($img, 255, 0, 0);//红色(对角线)

# 3. 填充画布背景颜色
imagefill($img, 100, 100, $black);//填充画布颜色为黑色

# 4. 对画布做一些处理(对角线画一条红线)
imageline($img, 0,0, 100,100, $red);

# 5. 输出到浏览器
header('Content-Type: image/png');//必须声明
imagepng($img);//以png格式输出到浏览器

# 6. 释放图像(销毁)
imagedestroy($img);//释放内存

?>

运行以上代码,你会发现当前浏览器已经显示了我们做的图像,如下图所示:
在这里插入图片描述

总结

当然,保存图像文件与输出到浏览器,两个可以同时兼得。

GD 库说白了就是系统为我们提供的一套 图像处理 解决方案,提供给我们大量函数及API,只要会用就行,没有任何难度,该文章所用的函数,都可以在 PHP 手册或者官网找到函数介绍。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王佳斌

请作者喝杯咖啡 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值