PHP图像操作

PHP图像操作

图像处理概述

1,开启GD2图像扩展库
    PHP不仅限于只产生HTML的输出,还可以创建与操作多种不同格式的图像文件
    PHP提供了一些内置的图像处理函数,也可以使用GD函数库创建新图像,或处理已有的图像
    目前GD2库支持JPEG,PNG和WBMP格式
    
    GD扩展用于动态创建图片,使用c语言编写
    
    开启GD2扩展库,将php.ini中extension=php_gd2.dll选项前的分号去掉,重启

2,查看图像扩展库GD2是否开启
    phpinfo();
    使用图像处理函数

3,创建图像的大致步骤
    1,创建画布
    2,绘制图形
    3,输出图像
    4,释放资源

4,画布坐标系说明
    坐标原点位于画布左上角,以像素为单位

创建图像和销毁图像

1,创建基于已有图像的图像 imagecreatefrompng()
    描述:由文件或URL创建一个新图像
    语法:resource imagecreatefrompng(string $filename)
    参数:$filename 为图像的完整路径
    返回:成功后返回图像资源,失败后返回false
    提示:imagecreatefromjpeg()和imagecreatefromgif()语法与该函数相同
    

2,创建空画布图像 imagecreatetruecolor()
    描述:新建一个真彩色图像,支持24位色,RGB(256,256,256)
    语法:resource imagecreatetruecolor(int $width,int $height)
    参数:$width 图像宽度,$height 图像高度
    返回:成功后返回图像资源,失败后返回false
    
3,销毁图像资源 imagedestroy()
    描述:销毁一图像,释放与image图像标识符关联的内存
    语法:bool imagedestroy(resource $image)
    参数:$image 为由imagecreatetruecolor()创建的图像标识符

图像操作

1,为图像分配颜色imagecolorallocate()
    语法:int imagecolorallocate(resource $image,int $red,int $green,int $blue)
    参数:$image 图像资源表示符
    提示:第一次对imagecolorallocate()的调用会给图像填充背景色
    
2,输出图像到浏览器或保存文件imageijpeg()
    描述:以jpg/gif/png格式将图像输出到浏览器或文件
    语法:bool imagejpeg(resource $image,[string $filename,[int $quality]])
    参数:quality为可选项,范围从0到100,默认的质量值(大约75)
    提示:imagegif(),imagepng()与imagejpeg()格式一样,但没有第三个参数

3,水平地画一行字符串 imagestring()
    描述:水平地画一行字符串
    语法:bool imagestring(resource $img,int $font,int $y)
    参数:
        $img:图像资源
        $font:字体大小,取值1,2,3,4,5,使用内置字体
        $x,$y绘制字符串的开始坐标,一般在字符串左下角
        $y 代表要绘制的一行字符串
        $col 代表文本颜色
        $s  代表一行字符串
        
4,获取画布的宽度和高度
    宽度:int imagesx(resource $image);
    高度:int imagesy(resource $image);
    
5,获取内置字体的宽度和高度
    描述:返回指定字体一个字符宽度或高度的像素值
    字体宽度:int imagefontwidth(int $font)
    字体高度:int imagefontheight(int $font)
    提示:$font 为字体大小,取值1-5,最大为5
    

    
6,实例:在图像上绘制一行居中的字符

7,画一矩形并填充
    bool imagefilledractangle(resource $image,$x1,$y1,$x2,$y2,$color)
    参数:
        $x1,$y1 左上角图标
        $x2,$y2 右上角图标
        $color 填充背景颜色
        
8,画一个单一像素
    bool imagesetpixel($image,$x,$y,$color)
    说明:
        imagesetpixel()在image图像中用clor颜色在x,y坐标(图像左上角0,0)上画一个点
   
9,往图像上写入一行汉子
    描述:用TrueType字体系那个图像写入文本
    语法:array imagettftext($image,$size,$angle,$x,$y,$color,$fontfile,$ext)
    参数:
        $size:字号大小,自定义同word字号一样
        $angle:旋转角度(0-360)
        $x和$y:定义第一个字符的基本点
        $fontfile:是想要使用的TrueType字体的绝对路径
        $text:UTF-8编码的文本字符串

实例:图像验证码

1,绘制图像验证码

2,产生一个指定范围的数组 range()
    描述:建立一个包含指定范围单元的数组
    语法:array range(mixed $start,mixed $limit,number $step=1)
    参数:
        $start 指定范围第1个值
        $limit 指定范围最后一个值
        $step  指定步长值

3,合并数组 array_merge()
    描述:合并一个数组
    语法:array array_merge($array1,$array2...)

4,从数组中随机取出一个或多个单元
    描述:从数组中随机取出一个或多个单元
    语法: array_rand($input,[int $num_req=1])
    参数:
        input 表示当前数组
        $num_req指明了你想取出多少单元

5,生成更好的随机数
    int mt_rand(int $min,int $max)
    参数:
        min 可选的,返回的最小值,默认0
        max 可选的,返回的最大值,默认0

实例:制作图像水印效果

描述:为图像分配透明颜色imagecolorallocatealpha()
语法:int imagecolorallocatealpha($image,$red,$green,$blue,$alpha)     
说明:imagecolorallocatealpha()的行为和imagecolorallocate()相同,但多了一个额外的
    透明度参数alpha,其值从0到127,0表示完全不透明,127表示完全透明

实例:生成图像缩略图

描述:将一幅图像中的正方形区域拷贝到另一个图像中,平滑地插入像素值,一次,减少了图像的大小
    而仍然保持了极大的清晰度

语法:bool imagecopyresampled($dst_img,$src_image,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h)
参数: 
    $dst_image:目标图像
    $src_image:源像图
    $dst_x和$dst_y:目标图像x,y坐标
    $src_x和$src_y:原图像x,y坐标
    $dst_w和$dst_h:目标图像的宽度和高度
    $src_w,$src_h:源图像的宽度和高度 

相关实例代码我放在了github上,有需要的可以去看一下

PHP仓库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值