源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 366|回复: 20

[PHP编程] PHP图片处理之图片背景、画布操作

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2018-12-25 17:49:39 | 显示全部楼层 |阅读模式
这篇文章主要介绍了PHP图片处理之图片背景、画布操作,本文先是讲解了PHP中创建图片的几个函数,然后给出了一个给图片添加文字水印的例子,需要的朋友可以参考下

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

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

复制代码 代码如下:
  resource  imagecreatefromjpeg(string $filename)           //从JPEG文件或URL新建一图像
  resource  imagecreatefrompng(string $filename)             //从PNG文件或URL新建一图像
  resource  imagecreatefromgif(string $filename)            //从GIF文件或URL新建一图像

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

复制代码 代码如下:
  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
list($width,$height,$type,$attr) = getimagesize("image/brophp.jpg");
echo "<img src='image/brophp.jpg'".$attr.">";
?>

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

复制代码 代码如下:
<?php
    //向不同格式的图片中间画一个字符串(也是文字水印)
    function image($filename,$string){
        //获取图片的属性,第一个宽度,第二个高度,类型1=>gif,2=>jpeg,3=>png
        list($width,$height,$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, 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");
?>

回复

使用道具 举报

4

主题

2万

回帖

316

积分

中级会员

Rank: 3Rank: 3

积分
316
发表于 2022-9-23 20:51:58 | 显示全部楼层
天天源码社区论坛
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

156

积分

注册会员

Rank: 2

积分
156
发表于 2023-1-24 02:40:11 | 显示全部楼层
刷屏刷屏刷屏
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

307

积分

中级会员

Rank: 3Rank: 3

积分
307
发表于 2023-6-13 18:21:23 | 显示全部楼层
来看看怎么样
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2023-9-11 14:33:01 | 显示全部楼层
66666666666
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

321

积分

中级会员

Rank: 3Rank: 3

积分
321
发表于 2023-9-19 15:46:53 | 显示全部楼层
可以,看卡巴
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

176

积分

注册会员

Rank: 2

积分
176
发表于 2023-10-3 23:37:39 | 显示全部楼层
挺不错的东西
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-4-17 16:49:37 | 显示全部楼层
额UI废物iuhfujewfiewnnfen
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

79

积分

注册会员

Rank: 2

积分
79
发表于 2024-9-11 18:26:37 | 显示全部楼层
而非为吾问无为谓娃娃
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2024-9-15 01:02:02 | 显示全部楼层
了乐趣了去了去了去了去了
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-24 22:11 , Processed in 0.081483 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表