PHP学习之--图像处理

创建图像

创建图像的一般流程:
1).设定标头,告诉浏览器你要生成的 MIME类型。
2).创建一个图像区域,以后的操作都将基于此图像区域。
3).在空白图像区域绘制填充背景。
4).在背景上绘制图形轮廓输入文本。
5).输出最终图形。
6).清除所有资源。
7).其他页面调用图像。

简化流程

  1. 设置格式
  2. 创建图像区域
  3. 生成背景
  4. 生成前景
  5. 输出图像
  6. 清除资源

生成图片

<?php  
//第一步设置文件MIME类型
//将输出类型改成
header('Content-Type: image/png');

//第二步,创建一个图像区域,图像背景
//有两种穿件方式,,资源类型,一般要加上@符号,防止出错
//imagecreatetruecolor返回的是一个资源句柄\
//这个函数创建了一个图像区域,没有进行填充的时候,背景默认是黑色的
$im=imagecreatetruecolor(200, 200);

//第三步,在空白图像区域,绘制颜色,文字,线条
//填充色换掉,首先要有个颜色颜色填充器
//imagecolorallocate — 为一幅图像分配颜色
$blue=imagecolorallocate($im,0,102,255);
//将颜色填充到背景上去
imagefill($im,0,0,$blue);

//第四步,在背景上输入一些文字,线条等
$white=imagecolorallocate($im,255,255,255);
//画一条线段
imageline($im,0,0,200,200,$white);
//绘制文本
imagestring($im,5,100,100,'Mr.Lee',$white);


//第五步,输出最终图形
//以PNG格式将图像输出到浏览器或文件
imagepng($im);

//第六步,清空所有资源
imagedestroy($im);
?>

输出图像

<?php  
echo '<img src="1.test.php" alt="">';
?>

实例之–创建验证码

问题

实例之–加载已有的图像

<?php  
//加载已有的图像
header('Content-type: image/jpg');
//用Image标签字啊如图像,是可以编辑图像的
//在载入图像中,加入一个小水印
$im=imagecreatefromjpeg('image/test.jpg');
$white=imagecolorallocate($im,255,255,255);
imagestring($im,5,0,0,'http://www.test.com',$white);
imagejpeg($im);
imagedestroy($im);

?>

改进

<?php  
define('__DIR__',dirname(__FILE__));

// 加载已有的图像
header('Content-type: image/jpg');
//用Image标签字啊如图像,是可以编辑图像的
//在载入图像中,加入一个小水印


// 用绝对路径速度最快,通过魔法常量可以移植到不同服务器上
$im=imagecreatefromjpeg(__DIR__.'\image\test.jpg');
$white=imagecolorallocate($im,255,255,255);
imagestring($im,5,0,0,'http://www.test.com',$white);
imagejpeg($im);
imagedestroy($im);
?>

使用系统字体

使用字体注意事项:
如需使用中文,字体必须支持中文

<?php  

define('__DIR__',dirname(__FILE__));

// 加载已有的图像
header('Content-type: image/jpg');
//用Image标签字啊如图像,是可以编辑图像的
//在载入图像中,加入一个小水印
// 用绝对路径速度最快,通过魔法常量可以移植到不同服务器上
$im=imagecreatefromjpeg(__DIR__.'\image\test.jpg');
$white=imagecolorallocate($im,255,255,255);
// 字体文件
$font='C:\Windows\Fonts\impact.ttf';
// 采用系统提供的字体
// 第一个参数:图像句柄,第二个参数:字体大小,第三个参数旋转角度,第4,5个参数是坐标,第五个参数是:颜色,第六个参数是字体文件,第七个参数是:文本
imagettftext($im, 30, 30, 50, 100, $white, $font, 'hello');

imagejpeg($im);
imagedestroy($im);

?>

缩放图片

<?php  
// 图像微缩
header('Content-type: image/jpg');
define('__DIR__',dirname(__FILE__));

list($width,$height)=getimagesize(__DIR__.'\image\test.jpg');

// 将原图缩放40%
$new_width=$width*0.5;
$new_height=$height*0.5;

// 创建一个新图
$im=imagecreatetruecolor($new_width,$new_height);

// 载入原图
$_im=imagecreatefromjpeg(__DIR__.'\image\test.jpg');

//imagecopyresampled — 重采样拷贝部分图像并调整大小
imagecopyresampled($im,$_im,0,0,0,0,$new_width,$new_height,$width,$height);

imagejpeg($im);
imagedestroy($im);

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值