`

第14章 处理图像

 
阅读更多

Demo1.php

<?php
	//一般生成的图像可以是 png,jpg,gif,bmp
	//jpeg,wbmp
	//第一步,设置文件MIME类型,输出类型 text/html 类型是网页类型,默认可以不写
	//将输出类型改成图像流
	header('Content-Type:image/png;');
	
	//第二步,创建一个图形区域,图像背景
	//有两种创建方式,资源类型,一般要加上 @ 符号,防止出错
	//imagecreatetruecolor 返回的是一个资源句柄
	//这个函数创建了一个图像的区域,没有进行填充的时候,背景默认是黑色的
	$im = imagecreatetruecolor(200,200);
	
	//第三步,有空白图像区域,绘制颜色,文字叫,线条啊。。。
	//填充色换掉,首先要有个颜色填充器
	//imagecolorallocate -- 为一幅图像分配颜色
	$blue = imagecolorallocate($im,0,102,255);
	//将这个 blue 颜色填充到背景上去
	//imagefill -- 区域填充
	imagefill($im,0,0,$blue);
	
	//第四部,在蓝色的背景上输入一些线条,文字等
	$white = imagecolorallocate($im,255,255,255);
	//imageline -- 画一条线段
	imageline($im,0,0,200,200,$white);
	imageline($im,200,0,0,200,$white);
	//imagestring -- 水平地画一行字符串
	imagestring($im,5,80,20,'Mr.One',$white);
	
	//第五步,输出最终图形
	//以 PNG 格式将图像输出到浏览器或文件
	imagepng($im);
	
	//第六步,我要将所有的资源全部清空
	imagedestroy($im);
?>

 

Demo2.php

<?php
	//src 可以插入各样类型的图片
	//Demo1.php 其实就是一张 png 图片
	header('Content-Type:text/html; charset=gbk');
	echo '<img src="Demo1.php" alt="图形"/>';
?>

 

Demo3.php

<?php
	//简单的验证码
	//随机数
	//为什么要循环 0-15 之间的数呢?
	//因为要实现最简单的字母和数字混搭
	//十六进制 0-9 a-f
	//dechex -- 十进制转换为十六进制
	//创建一个四位的验证码
	for($i=0;$i<4;$i++){
		$nmsg .= dechex(mt_rand(0,15));	
	}
	//echo $nmsg;
	header('Content-Type:image/png;');
	$im = imagecreatetruecolor(75,25);
	$blue = imagecolorallocate($im,0,102,255);
	$white = imagecolorallocate($im,255,255,255);
	imagefill($im,0,0,$blue);
	imagestring($im,5,20,5,$nmsg,$white);
	imagepng($im);
	imagedestroy($im);
?>

 

Demo4.php

<?php
	define('__DIR__',dirname(__FILE__).'\\');
	//加载已有的图像
	header('Content-Type:image/png;');
	//header('Content-Type:image/jpeg;');
	//imagecreatefrompng -- 从 PNG 文件或 URL 新建一图像
	//用 image 载入图像,是可以编辑图像
	//在载入的图像中,加入一个小水印
	$im = imagecreatefrompng(__DIR__.'ss.png');
	//$im = imagecreatefromjpeg('xx.jpg');
	$white = imagecolorallocate($im,255,255,255);
	imagestring($im,5,10,10,'http://www.oneStopWeb.cn',$white);
	imagepng($im);
	//imagejpeg($im);
	imagedestroy($im);
?>

 

Demo5.php

<?php
	define('__DIR__',dirname(__FILE__).'\\');
	//加载已有的图像
	header('Content-Type:image/png;');
	//header('Content-Type:image/jpeg;');
	//imagecreatefrompng -- 从 PNG 文件或 URL 新建一图像
	//用 image 载入图像,是可以编辑图像
	//在载入的图像中,加入一个小水印
	$im = imagecreatefrompng(__DIR__.'ss.png');
	//$im = imagecreatefromjpeg('xx.jpg');
	$white = imagecolorallocate($im,255,255,255);
	imagestring($im,5,10,10,'http://www.oneStopWeb.cn',$white);
	//font 字体还必须支持中文
	$font = 'C:\WINDOWS\Fonts\SIMHEI.TTF';
	//字体文件
	$text = iconv('gbk','utf-8','阅谁问君诵');
	//采用系统提供的字体
	//第二参数,是字体的大小,第三个参数是旋转角度,4,5参数是坐标
	imagettftext($im,20,10,50,100,$white,$font,$text);
	imagepng($im);
	//imagejpeg($im);
	imagedestroy($im);
?>

 

Demo6.php

<?php
	//微缩图,不但表面的大小改变了,容量也改变了
	//是真的改变了,不是表面的缩小
	define('__DIR__',dirname(__FILE__).'\\');
	header('Content-Type:image/png;');
	//getimagesize -- 取得图像大小
	//获取到了原图的长度和高度
	list($width,$height) = getimagesize(__DIR__.'ss.png');	
	//将原图缩放成 40%
	$_width = $width * 0.4;
	$_height = $height * 0.4;
	//创建一个新图
	$im = imagecreatetruecolor($_width,$_height);
	//下面的工作是,载入原图,将原图复制到新图上去
	//载入原图
	$_im = imagecreatefrompng(__DIR__.'ss.png');	
	//将原图重新采样,拷贝到新图上,最后按 0.4 的比例输出
	//imagecopyresampled -- 重采样拷贝部分图像并调整大小
	imagecopyresampled($im,$_im,0,0,0,0,$_width,$_height,$width,$height);
	//将新图输出
	imagepng($im);
	//第二个参数不需要,直接 null 过度
	//第三个参数,是 0-100 来调节 JPG 的清晰度
	//如果是 imagepng,那么全部都是高清
	//imagejpeg($im,null,50);
	//销毁
	imagedestroy($im);
	imagedestroy($_im);
?>

 

 

 

 

分享到:
评论

相关推荐

    图像工程 第四版 上册 图像处理 讲义 pdf

    《图像工程 第四版 上册 图像处理 讲义》是由著名学者章毓晋编著的一本关于图像处理的专业教材,适用于高等教育和科研领域。全书共分为十五章,全面而深入地探讨了图像处理的基础理论与应用技术。在本讲义中,章毓晋...

    Visual C++数字图像处理技术详解第1-14章

    第一篇 数字图像处理编程基础  第1章 Visual C++图像处理基础 第二篇 数字图像处理核心技术 第2章 图像几何变换 第3章 图像正交变换 第4章 图像增强 第5章 图像复原 ...第14章 车牌识别系统综合应用

    数字图像处理_第三版_冈萨雷斯_课后答案[1-12章]

    本资源包含该书的课后答案,涵盖了从第一章到第十二章的全部练习题目,对于学习者来说,是一份极具价值的学习资料。 首先,我们要明确数字图像处理的核心内容包括图像的获取、表示、分析和变换。在第一部分,书中会...

    章毓晋 《图像工程_上册 图像处理》

    《图像工程》是著名计算机科学家章毓晋教授的一部经典著作,主要分为上下两册,分别专注于图像处理和图像分析。这些PPT讲义显然基于章毓晋教授的教材,为学习者提供了深入理解图像处理和分析理论与实践的宝贵资源。 ...

    Visual C++数字图像处理技术详解源代码

    Visual C++数字图像处理技术详解源代码, 包括 第01章 VC++图像...第10章 图像压缩编码 第11章 图像特效 第12章 VC++结合OpenCV编程 第13章 VC++结合Matlab编程 第14章 车牌识别系统综合应用 等共14章,狗看一阵子的!!

    vc图像处理技术-第14章,连载

    在第14章的内容里,我们将会接触到一系列关于图像处理的核心概念、算法以及实现方法。 首先,图像处理是计算机视觉领域的重要组成部分,它涉及对数字图像进行操作以改善质量、提取特征或分析内容。在VC++中,我们...

    图像处理、分析与机器视觉(第三版)

    第1章引言,第2章图像及其表达与性质连续图像函数,第3章图像及其数学与物理背景第4章图像分析的数据结构第5章图像预处理第6章...第12章3d视觉的应用第13章数学形态学第14章图像数据压缩第15章纹理 第16章运动分析词汇

    完整版精品课件 高等数学必学 中山大学 数学实验与数学软件 第14章 MATLAB数字图像处理初步(共42页).pptx

    中山大学 数学实验与数学软件 第14章 MATLAB数字图像处理初步(共42页).pptx 中山大学 数学实验与数学软件 第15章 MATLAB数据可视化(二)(共43页).pptx 中山大学 数学实验与数学软件 第16章 MATLAB期末复习与样...

    Visual C++数字图像处理技术详解.zip

    《Visual C++数字图像处理技术详解》以数字图像处理技术为主线,全面地介绍在Visual C++环境下进行数字图像处理程序设计的方法。内容涵盖了数字图像的变换、增强、复原、重建、形态学...第14章 车牌识别系统综合应用

    冈萨雷斯数字图像处理第三版书中图片

    4. **图像变换**:第四章讨论了图像的几何变换,如平移、旋转、缩放、剪切,以及更复杂的仿射变换,这些变换在图像校正和匹配中十分关键。 5. **傅立叶变换与频域分析**:第五章深入到频域,讲解了离散傅立叶变换...

    数字图像处理电子版课件

    配主 编 何东健 副主编 耿 ...第四章 图像增强与平滑 第五章 图像分割与边缘检测 第六章 图像的几何变换 第七章 频域处理 第八章 数学形态学及其应用 第九章 图像特征与理解 第十章 图像编码 第十一章 图像复原

    数字图像处理示例图片集合

    2. **第四章至第五章**:这部分内容可能涉及图像的频域分析,如傅立叶变换在图像处理中的应用,以及滤波器的设计。`images_chapter_04`和`images_chapter_05`的图像可能展示了不同滤波器对图像进行低通、高通、带通...

    数字图像处理冈萨雷斯第三版用到的图像

    第四章至第六章通常涉及图像的运算,如直方图均衡化、灰度变换和空间滤波。图像可能包括原始直方图、处理后的直方图以及各种滤波器(如平均滤波器、高斯滤波器、中值滤波器)对图像的影响示例。 第七章和第八章可能...

    matlab 图像处理代码

    第四章可能是滤波和平滑处理,如使用高斯滤波器;第五章可能涵盖边缘检测算法,如Canny或者Sobel方法;第六章可能是图像分割,如阈值分割或区域生长;第七章可能是特征提取,如角点检测或SIFT;第八章可能涉及图像...

    数字图像处理ppt

    第四章:图像的频域分析 傅立叶变换在图像处理中的应用,如图像的频谱分析,低通滤波和高通滤波的概念及其在图像去噪和边缘检测中的作用。 第五章:图像编码与压缩 探讨图像数据的压缩原理,包括无损压缩(如游程...

    图像处理、分析与机器视觉4

    第3章图像及其数学与物理背景第4章图像分析的数据结构第5章图像预处理第6章分割ⅰ第7章分害第8章形状表示与描述第9章物体识别第10章图像理解第11章3d视觉和几何 第12章3d视觉的应用第13章数学形态学第14章图像数据...

    数字图像处理 MATLAB版 书中所有相关图片

    第十一章和第十二章可能涉及更高级的话题,如形状描述与匹配、图像金字塔、图像配准和多视图几何。这些内容需要用到如`regionprops`来提取形状特性,`imresize`用于图像尺寸调整,以及`imregister`进行图像配准。 ...

    《MATLAB图像处理实例详解》课件Chapter-14d第14章 基于SIMULINK的视频和图像处理.pptx

    《MATLAB图像处理实例详解》课程的第14章深入探讨了如何利用SIMULINK的Video and Image Processing Blockset模块库进行视频和图像处理。这个模块库是MATLAB为简化和加速这一领域的复杂任务设计的,它包含了大量专门...

Global site tag (gtag.js) - Google Analytics