温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP中如何输出图片

发布时间:2021-10-19 16:05:03 来源:亿速云 阅读:401 作者:iii 栏目:编程语言

本篇内容主要讲解“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中如何输出图片”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI