php图形图像处理基础

<?php
/*GD库简介
GD指的是Graphic Device,php的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片
php除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等进行处理。GD库常用在图片加水印,验证码声称等方面
php默认已经生成了GD库,只需要在安装的时候开启就行了*/
header("content-type:image/png");
#新建一个画布,通过imagecreatetruecolor函数可以创建一个真彩色的空白图片
$img = imagecreatetruecolor(100, 100);
$red = imagecolorallocate($img,0xFF,0x00,0x00);
imagefill($img,0,0,$red);
imagepng($img);
$imagedestroy($img);
/*绘制线条
GD库中对画笔所用的颜色,需要通过imagecolorallcoate函数进行分配,通过参数设定RGB的颜色值来确定画笔的颜色*/
$red = imagecolorallocate($img,0xFF,0x00,0x00);
//然后我们可以通过调用绘制线段函数imageline进行线条的绘制,通过指定起点跟终点来最终得到线条
imageline($img,0,0,100,100,$red)
//绘制好后,通过header与imagepng进行图像输出
header("content-type:image/png")
imagepng($img)
//最后可以调用imagedestroy来释放该图片占用的内存
imagedestroy($img)
/*在图像中绘制文字
与绘制线条类似,首先要新建一个图片与初始化颜色
然后使用imagestring函数来进行文字的绘制,这个函数的参数很多
imagestring(resource $image,int $font,int $x,int $y,string $s,int $col)
可以通过$font来设置字体,x,y来设置文字显示的位置,$s是要绘制的文字,$col是文字的颜色*/
imagestring($img,5,0,0,"hello world",$red);
/*生成图像验证码
简单的验证码其实就是在图片中输出了几个字符,通过上面的imagestring函数就能实现
但是处理上,为了使验证码更加安全,防止其他程序自动识别,因此常常需要对验证码进行一些干扰处理,通常会采用绘制一些噪点
干扰线段,对输出的字符进行倾斜/扭曲等操作
可以使用imagesetpixel绘制点来实现噪点干扰,但是只绘制一些点的作用不但,因此这里常常会使用循环等进行随机绘制*/
$img = imagecreatetruecolor(100,40);
$black = imagecolorallocate($img,0x00,0x00,0x00);
$green = imagecolorallocate($img,0x00,0xFF,0x00);
$white = imagecolorallocate($img,0xFF,0x00,0x00);
imagefill($img,0,0,$white);
$code = ‘‘;
for($i = 0;$i < 4;$i++){
$code .=rand(0,9);
}
imagestring($img,5,10,10,$code,$black);
for($i = 0 ; $i < 50 ; $i++){
imagesetpixel($img, rand(0,100), rand(0,100), $black);
imagesetpixel($img,rand(0,100),rand(0,100),$green);
}
header("content-type:image/png");
imagepng($img);
imagedestroy($img);
/*给图片加水印
给图片加水印的方法有两种,一种是在图片上加上一个字符串,另一种是在图片上加上一个logo或者其他的图片
因为是已经存在的图片,可以直接从已经存在的图片中建立画布,通过imagecreatefromjpeg可以直接从图片文件创建图像*/
$img = imagecreatefromjpeg($filename);
/*创建图像对象以后,我们就可以通过前面的GD函数,绘制字符串到图像上,如果要加的水印是一个logo图片,那么就需要在建立一个图像对象
然后通过GD函数imagecopy将logo的图像复制到源图像中*/
$logo = imagecreatefrompng($filename);
imagecopy($img,$logo,15,15,0,0,$width,$height)
//将logo图片复制到源图片上以后,将加水印后的图片输出保存就完成了加水印处理
//这里仅仅是为了案例需要准备一些素材图片
$url = ‘http://www.stchat.cn/data/attachment/forum/201506/12/100759pidbdaydh8dy7iby.jpg‘;
$content = file_get_contents($url);
$filename = ‘tmp.jpg‘;
file_put_contents($filename, $content);
$url = ‘‘;
file_put_contents(‘logo.png‘, file_get_contents($url));
//开始添加水印操作
$im = imagecreatefromjpeg($filename);
$logo = imagecreatefrompng(‘logo.png‘);
$size = getimagesize(‘logo.png‘);
imagecopy($im, $logo, 15, 15, 0, 0, $size[0], $size[1]); 
header("content-type: image/jpeg");
imagejpeg($im);
?>

钟志远  江苏南京 904727147

时间: 2024-11-09 03:49:06

php图形图像处理基础的相关文章

MATLAB图像处理基础

MATLAB图像处理基础 2.2.1 图像文件格式及图像类型 1.MATLAB支持的几种图像文件格式: ⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式. ⑵BMP(Windows Bitmap):有1位.4位.8位.24位非压缩图像,8位RLE(Run length Encoded)的图像.文件内容包括文件头(一个BITMAP FILEHEADER数据结构).位图信息数据块(位图信息头BITMAP INFOHEADER和一个颜

3D图形图像处理软件HOOPS介绍及下载

HOOPS 3D Application Framework(以下简称HOOPS)是建立在OpenGL.Direct3D等图形编程接口之上的更高级别的应用程序框架.不仅为您提供强大的图形功能,还内嵌了多边形优化和大模型处理等技术,能够大大提高 3D可视化的性能.同时,HOOPS开发包中提供的大量应用程序级的实例源码,帮助您在很短的时间内搭建出商业级的3D图形应用程序. HOOPS 3D Application Framework (HOOPS/3dAF) 3D图形图像处理软件为当今许多主流 3D

【JAVA语言程序设计基础篇】--图形用户界面基础--一些总结

第12章 图形界面基础 1.那个类是JAVA GUI组件的根?容器类是component的子类吗?哪个类是Swing GUI组建的根? java.awt.component是所有java GUI组件类的根. 容器类如JFrame是组件的子类. JComponent是Swing GUI组件类的根. 2.AWT组件与Swing组建的不同? AWT的组件是重而swing组件轻量化. 3. 你可以添加一个按钮到一个框架. 答:正确 您可以将一个框架添加到面板中. 答:错误 你可以添加一个面板到一个框架.

C#-Emgu.CV-------视频截取和图像处理基础

转:http://blog.sciencenet.cn/blog-538909-694431.html mage<Bgr, Byte> frame = capture.QueryFrame();//获取摄像头的视频帧Image<Bgr, Byte> frame2 = frame.Convert<Bgr, Byte>(); //将帧转换为RGB类型,对应为三维数组Image<Gray, Byte> grayFrame = frame.Convert<Gr

HTML5图形图像处理技术研究

摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了一个Web图形图像处理程序,并通过理论分析和实验得出:HTML5在Web图形图像处理上具有优势,存在基于HTML5实现Web处理图形图像的可能性. 关键词:HTML5:Web:Canvas:图形图像处理 引言 传统C/S架构的桌面图形图像处理程序,虽然处理速度较快,但由于界面和算法逻辑都集中在客户端

图像处理---基础(模板、卷积运算)

转自:图像处理:基础(模板.卷积运算) 1.使用模板处理图像相关概念: 模板:矩阵方块,其数学含义是一种卷积运算.      卷积运算:可看作是加权求和的过程,使用到的图像区域中的每个像素分别于卷积核(权矩阵)的每个元素对应相                乘,所有乘积之和作为区域中心像素的新值.      卷积核:卷积时使用到的权用一个矩阵表示,该矩阵与使用的图像区域大小相同,其行.列都是奇数,              是一个权矩阵.      卷积示例:              3 *

Python计算机视觉编程-第一章 图像处理基础

图像处理基础 测试1:PIL:Python图像处理类库 PIL(Python Imaging Library,图像处理库)提供了通用的图像处理功能,以及大量有用的基本图像操作.PIL库已经集成在Anaconda库中,推荐使用Anaconda,简单方便,常用库都已经集成.也可以安装python(x,y),但是我一直安装失败,所以就没有装,没有安装也可以自己导入,比如我就是用的pycharm自己导入. 如果安装失败,可以添加一些镜像网站,在进行下载 代码不报错之后,运行代码: 测试代码: # -*-

图像处理基础知识

 图像掩膜: 用选定的图像.图形或物体,对处理的图像(全部或局部)进行遮挡,来控制图像处理的区域或处理过程.用于覆盖的特定图像或物体称为掩模或模板.光学图像处理中,掩模可以是胶片.滤光片等.数字图像处理中,掩模为二维矩阵数组,有时也用多值图像.数字图像处理中,图像掩模主要用于:①提取感兴趣区,用预先制作的感兴趣区掩模与待处理图像相乘,得到感兴趣区图像,感兴趣区内图像值保持不变,而区外图像值都为0.②屏蔽作用,用掩模对图像上某些区域作屏蔽,使其不参加处理或不参加处理参数的计算,或仅对屏蔽区作处

共有31款PHP 图形/图像处理开源软件(转)

详情点击:http://www.oschina.net/project/lang/22/php?tag=141&os=0&sort=view PHP 图像处理库 Grafika Grafika 是一个 PHP 的图像处理库.可用于改变图像大小.剪切.比较,以及添加水印等操作.同时可以创建一些文本图片.几何图形并应用一些过滤器.基于 Imagick 和 GD 构建. 特征 智能裁剪 图像比较 感知哈希 高级图像处理过滤器 贝塞尔曲线 示例代码: ...更多Grafika信息 最近更新:Gra