欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP中怎么输出图片?(图例详解)

程序员文章站 2022-03-08 08:47:26
...
在之前的文章中给大家带来了《PHP如何上传文件?看完就明白了!》,其中详细的给大家介绍了在PHP中应该怎样上传文件,本篇文章来一起看一看PHP中图像处理的相关知识,希望对大家有帮助!

PHP中怎么输出图片?(图例详解)

图像处理是PHP工作中常遇到的事情,我们遇到需要处理图像的场景有很多,例如图像验证码、图片水印等等场景。其实学习图像处理的重点实际是学习PHP中GD系统的函数,PHP的图像处理需要GD库的支持,那接下来我们首先来看一下关于GD库的相关知识吧。

GD库

GD库可以理解为一个用于创建图形图像的函数库,GD库实际是由C语言编写的,可以用于PHP中,除了PHP外还可以在Perl等多种语言中使用,GD 库中提供了很多用来处理图片的接口,

PHP 中使用 GD 库可以在页面中绘制各种图形图像,统计图,还有图像验证码也可以使用GD库来实现。

示例如下:

<?php
phpinfo();
?>

当输入之后,在输出结果中,如果出现如下所示的两个选项,则表示当前的机器支持通过GD来处理图像:

PHP中怎么输出图片?(图例详解)

或者可以使用:

<?php
    print_r(gd_info());
?>

输入之后运行,若输出结果如下图所示,也表示当前机器支持通过GD来处理图像。

PHP中怎么输出图片?(图例详解)

那如果没有安装好的话,也可以通过在 Windows 系统下只需将 php.ini 配置文件中“extension=php_gd2.dll”一项前面的注释删除的方法完成。

在 PHP 中,通过 GD 库处理图像的操作一般分为 4 个基本步骤:

  • 创建画布

  • 绘制图像

  • 输出图像

  • 释放资源

通过这四步我们就完成了对图像的基本操作了,你接下来我们一起来看一下应该怎么操作吧。

创建画布

我们所有的绘图和图像处理都需要在一个背景图片上面完成,也就是画布,可以理解为为图像我们在内存中有一片临时的区域作为画布,用来储存图像的信息,以后的图像操作都会在这片区域也就是画布上进行。

imagecreate() imagecreatetruecolor() 用来创建画布,它们的语法格式如下:

imagecreate(int $width, int $height)
imagecreatetruecolor(int $width, int $height)

其中,$width 表示创建画布的宽度也可以理解为图像的宽度,$height 表示创建画布的高度也就是图像的高度

这两个函数都可以用来创建画布,不过其中不同的是,他们可以容纳的色彩范围不同。

示例如下:

<?php
    $img = @imagecreatetruecolor(120, 20) or die('画布创建失败!');
?>

由于只是创建了一个画布上面并没有东西,浏览器也不会输出画布,但是可以通过 imagesx() 和 imagesy() 来获取图像的宽和高:

<?php
    $img = @imagecreatetruecolor(120, 20) or die('画布创建失败!');
    echo '画布的宽度为:'.imagesx($img).'像素';
    echo '<br>画布的高度为:'.imagesy($img).'像素';
?>

输出结果:

PHP中怎么输出图片?(图例详解)

由此我们便完成了创建一个画布。

除了使用上面两个函数创建画布之外,还可以通过以下方式,通过文件或者url创建图像:

  • imagecreatefromgif() : 通过 GIF 文件或者 URL 新建一个图像

  • imagecreatefromjpeg() : 通过 JPEG 文件或者 UR 新建一个图像

  • imagecreatefrompng() : 通过 PNG 文件或者 UR L新建一个图像

  • imagecreatefromwbmp() : 通过 WBMP 文件或者URL,新建一个图像

输出图片

上述示例中,我们已经成功的创建了画布,在PHP中不同格式的图像也需要不同的函数来进行输出,不同的函数如下所示:

  • imagegif() : 输出一个GIF格式图像到浏览器或文件

  • imagejpeg() : 输出一个JPEG格式图像到浏览器或文件

  • imagepng() :输出一个PNG格式图像到浏览器或文件

它们的语法格式如下:

imagegif(resource $image[, string $filename])
imagejpeg(resource $image[, string $filename[, int $quality]])
imagepng(resource $image[, string $filename])

其中,$image为创建的一个图像资源;$filename表示为参数,用来设置文件需要保存的路径。

示例如下:

首先我在根目录中已经保存了一个名为php.png的图像文件

<?php
    header('Content-type:image/jpeg');
    $image= imagecreatefrompng('php.png');
    imagepng($image);
?>

输出结果:

PHP中怎么输出图片?(图例详解)

通过imagecreatefrompng()函数和imagepng()成功的输出了一个格式为png的图片。

释放图像资源

通过上述示例已经成功的输出了图片,在图片的资源使用完成后,通常需要释放图像处理时所占用的内存,那应该怎样操作呢?

在PHP中我们通过imagedestroy() 函数来释放图像资源,语法格式如下:

imagedestroy(resource $image)

其中$image表示需要释放资源的图像

示例如下:

<?php
    header('Content-type:image/jpeg');
    $image= imagecreatefrompng('php.png');
    imagepng($image);
    imagedestroy($image);
?>

因为释放图像资源的操作是没有输出内容的,所以就不列出输出结果了。

推荐学习:《PHP视频教程

以上就是PHP中怎么输出图片?(图例详解)的详细内容,更多请关注其它相关文章!

相关标签: PHP 图像