本文实例讲述了PHP图像处理。分享给大家供大家参考,具体如下:
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);?>
新闻热点
疑难解答