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); //显示灰色的方块
?>