加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP图片处理之图片背景、画布操作

发布时间:2020-12-13 02:11:04 所属栏目:PHP教程 来源:网络整理
导读:《:PHP图片处理之图片背景、画布操作》要点: 本文介绍了:PHP图片处理之图片背景、画布操作,希望对您有用。如果有疑问,可以联系我们。 像验证码或根据动态数据生成统计图标,以及前面介绍的一些GD库操作等都属于动态绘制图像.而在web开发中,也会经常去处

《:PHP图片处理之图片背景、画布操作》要点:
本文介绍了:PHP图片处理之图片背景、画布操作,希望对您有用。如果有疑问,可以联系我们。

像验证码或根据动态数据生成统计图标,以及前面介绍的一些GD库操作等都属于动态绘制图像.而在web开发中,也会经常去处理服务器中已存在的图片.例如,根据一些需求对图片进行缩放、加水印、裁剪、翻转和旋转等改图的操作.在web应用中,经常使用的图片格式有GIF、JPEG和PNG中的一种或几种,当然GD库也可以处理其他格式的图片,但都很少用到.所以安装GD库时,至少安装GIF、JPEG或PNG三种格式中的一种.PHP实战

  在前面介绍的画布管理中,使用imagecreate()和imageCreateTrueColor()两个函数去创建画布资源.但如果需要对自己已有的图片进行处理,只要将这个图片作为画布资源即可,也就是我们所说的创建图片背景.可以通过下面介绍的几个函数,打开服务器或网络文件中已经存在的GIF、JPEG和PNG图像,返回一个图像标识符,代表了从给定的文件名取得的图像作为操作的背景资源.它们的原型如下所示,它们在失败时都会返回一个空字符串,并且输出一条错误信息.PHP实战

代码如下:

  resource? imagecreatefromjpeg(string $filename)?????????? //从JPEG文件或URL新建一图像
  resource? imagecreatefrompng(string $filename)???????????? //从PNG文件或URL新建一图像
  resource? imagecreatefromgif(string $filename)??????????? //从GIF文件或URL新建一图像

  不管使用哪个函数创建的图像资源,用完以后都需要使用imagedestroy()函数进行销毁.再有就是图片格式对应的问题,任何一种方式打开的图片资源都可以保留为同一种格式.例如,对于使用imagecreatefromjpeg()函数创建的图片资源,可以使用imagepng()函数以PNG格式将图像输出到浏览器或文件.当然最好是打开的是哪种格式的图片,就保留成对应的图片格式.如果要做到这一点,我们还需要先认识一下getimagesize()函数,通过图片名称就可以获取图片的类型、宽度和高度等.该函数的原型如下所示:PHP实战

代码如下:

  array? getimagesize(string filename[,array &imageinfo])???????????? //获取图片的大小和类型

  如果不能拜访filename指定的图像或者其不是有效图像,该函数将返回FALSE并产生一条E_WARNING级的错误.如果不出错,getimagesize()返回一个具有四个单元的数组,索引0包含图像宽度的像素值,索引1包含图像高度的索引值,索引2是图像类型的标记:1=GIF,2=JPG,3=PNG,4=SWF等,索引3是文本字符串,内容为“height=”yyy”? width=”xxx””,可以直接用于<IMG>标记.如下所示:PHP实战

代码如下:

<?php
list($width,$height,$type,$attr) = getimagesize("image/brophp.jpg");
echo "<img src='image/brophp.jpg'".$attr.">";
?>

  下面的例子声明一个image()函数,可以打开GIF、JPG和PNG中任意格式的图片,并在图片的中间加上一个字符串后,保留成原来的格式(文字水印).在以后的开发中,如果需要同样的操作(打开的是哪种格式的图片,也保留成对应格式的文件),可以参与本例的模式,代码如下所示:PHP实战

代码如下:

<?php
????//向不同格式的图片中间画一个字符串(也是文字水印)
????function image($filename,$string){
????????//获取图片的属性,第一个宽度,第二个高度,类型1=>gif,2=>jpeg,3=>png
????????list($width,$type) = getimagesize($filename);
????????//可以处理的图片类型
????????$types = array(1=>"gif",2=>"jpeg",3=>"png",);
????????//通过图片类型去组合,可以创建对应图片格式的,创建图片资源的GD库函数
????????$createfrom = "imagecreatefrom".$types[$type];
????????//通过“变量函数”去打对应的函数去创建图片的资源
????????$image = $createfrom($filename);
????????//设置居中字体的X轴坐标位置
????????$x = ($width-imagefontwidth(5)*strlen($string))/2;
????????//设置居中字体的Y轴坐标位置
????????$y = ($height-imagefontheight(5))/2;
????????//设置字体的颜色为红色
????????$textcolor = imagecolorallocate($image,255,0);
????????//向图片画一个指定的字符串
????????imagestring($image,5,$x,$y,$string,$textcolor);
????????//通过图片类型去组合保留对应格式的图片函数
????????$output = "image".$types[$type];
????????//通过变量函数去保留对应格式的图片
????????$output($image,$filename);
????????imagedestroy($image);
????}
????image("brophp.gif","GIF");
????image("brophp.jpg","JPEG");
????image("brophp.png","PNG");
?>

编程之家培训学院每天发布《:PHP图片处理之图片背景、画布操作》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读