首页 > 后端开发 > PHP问题 > PHP中怎么输出图片?(图例详解)

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

WBOY
发布: 2023-03-13 12:12:02
原创
8852 人浏览过

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

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

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

GD库

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

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

示例如下:

<?php
phpinfo();
?>
登录后复制

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

1019.17.png

或者可以使用:

<?php
    print_r(gd_info());
?>
登录后复制

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

1019.18.png

那如果没有安装好的话,也可以通过在 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(&#39;画布创建失败!&#39;);
?>
登录后复制

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

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

输出结果:

1019.19.png

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

除了使用上面两个函数创建画布之外,还可以通过以下方式,通过文件或者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(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
?>
登录后复制

输出结果:

1019.20.png

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

释放图像资源

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

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

imagedestroy(resource $image)
登录后复制

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

示例如下:

<?php
    header(&#39;Content-type:image/jpeg&#39;);
    $image= imagecreatefrompng(&#39;php.png&#39;);
    imagepng($image);
    imagedestroy($image);
?>
登录后复制

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

推荐学习:《PHP视频教程

以上是PHP中怎么输出图片?(图例详解)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板