php 图像

GD

 

步骤:

1、创建画布:在内存开辟空间,用于存储图像信息

2、绘制图像

3、输出图像:要用header()发送Content-type

4、释放资源

 

直接用浏览器请求该脚本,或将该脚本的url赋给src属性,都可以获取图像

 

 

** php配置文件

extension_dir="ext所在目录"

启动extension=php_gd2.dll

重启服务

** php代码里,判断扩展是否已经开启

var_dump( extension_loaded(‘gd‘) );    

或者phpinfo();    显示所有配置信息

或者 var_dump(gd_info());

或者 var_dump( function_exists(‘imagecreatetruecolor‘) );

 

** 画图流程

$width=500; $height=500;

$image = imagecreatetruecolor($width, $height);  创建画布

 

$red = imagecolorallocate($image, 255, 0, 0);  创建颜色

 

imagechar($image, $font, $x, $y, $c, $color);  开始绘画  在x y位置  写字符串$c的第一个字符   大小为$font单位唔知

imagechar($image, 5, 50, 50, ‘m‘, $red);   

imagestring($image, 5, 200, 200, ‘heheda‘, $red);   写一个字符串

 

header(‘content-type:image/jpeg‘);  告诉浏览器以图像的形式来显示

 

imagejpeg($image);  输出图像,要和header里的格式一致

imagegif($image, ‘1.gif‘);   保存为图片  header里是jpeg,这里是gif,会出错

 

imagedestroy($image);  销毁资源

 

** 验证码

$image = imagecreatetruecolor($width, $height);

$white = imagecolorallocate($image, 255, 255, 255);

$black = imagecolorallocate($image, 0, 0, 0);

function randColor($image) {  //返回随机颜色

  return imagecolorallocate($image, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255) );

}

 

imagefilledrectangle($image, 0, 0, $width, $height, $white);

 

imagettftext($image, $size, $angle, $x, $y, $color, $fontfile, $text);

imagettftext($image, 20, 0, 50, 50, $black, ‘MSYHBD.TTF‘, ‘呵呵哒‘);

还有画直线、弧线、点等等一堆函数

 

** 缩略图

$filename = ‘1.jpg‘;

$src_image = imagecreatefromjpeg($filename);  //通过原图像创建画布

 

$dst_width=50; $dst_height=50;

$dst_image = imagecreatetruecolor($dst_width, $dst_height);  //以目标尺寸创建画布

 

list($src_w, $src_h) = getimagesize($filename);  //返回图像信息数组

 

imagecopyresampled($dst_image, $src_image, 0,0,0,0,$dst_width, $dst_height, $src_w, $src_h);  重采样拷贝部分图像并调整大小

 

imagejpeg($dst_image, ‘abc.jpg‘);  //保存

imagedestroy($src_image);

imagedestroy($dst_image);

 

** 水印

文字水印就是根据图片得到画布,然后画点东西

图片水印把一个图片拷贝到另一个图片上 imagecopymerge(...)

php 图像

上一篇:httpclient


下一篇:NodeJS - path模块简单使用