PHP图像函数

http://blog.sina.com.cn/s/blog_68b56adb0100vq1a.html

相册程序、图片缩略图的生成是必不可少的一个功能,用PHP的GD函数为图片生成缩略图是很简单的,核心就一个 

imagecopyresampled函数。主要麻烦的是要考虑图片的各种长、宽、缩放比等等东西。

 

   如果对缩略图的质量要求不高可以使用imagecopyresized()函数,imagecopyresize()所生成的图像比较粗糙,但是速度较快;imagecopyresampled()函数是GD 2.x后新增加的函数,字面上的意思是会对图片进行重新采样(resampling),GD是采用插值算法生成更平滑的图像,但是速度相对imagecopyresize()函数来说要慢一些。
     imagecopyresample() 共有10个参数,前面两个是目标文件和源文件,后面4个分别是dst和src的width,height,中间的 src_x,src_y,dst_x,dst_y看得比较晕。。例子里面都是设置为0,后来试了下,发现把这4个参数写成 dst_start_x, dst_start_y, src_start_x, src_start_y的话就很好理解了。举个例子说吧。假如要在缩略图上下各留10 pixel的空白,那就可以用imagecopyresampled($dst, $src, dst_start_x, dst_start_y + 10, src_start_x, src_start_y, dst_width, dst_height – 20, src_width, src_height)来实现。

用imagecreatetruecolor(int x,int y)建立的是一幅大小为 x和 y的黑色图像(默认为黑色),如想改变背景颜色则需要用填充颜色函数imagefill($img,0,0,$color);   

imagecreate 新建一个空白图像资源,用imagecolorAllocate()添加背景色

 

<?php
$img = imagecreatetruecolor(100,100); 

   //创建真彩图像资源
$color = imagecolorAllocate($img,200,200,200);   //分配一个灰色
imagefill($img,0,0,$color);                 // 从左上角开始填充灰色
header('content-type:image/jpeg');   //jpg格式
imagejpeg($img);                              //显示灰色的方块
?>

<?php
$img = imagecreate(100,100);
$color = imagecolorallocate($img,200,200,200);
header('content-type:image/jpeg'); 

  //jpg格式
imagejpeg($img);                              //显示灰色的方块
?>

posted on 2016-10-21 10:19  醉半仙  阅读(146)  评论(0编辑  收藏  举报

导航