原理:就是将大图缩小并另存为小图
以此图为例,使其生成缩略图!
首先要使用到以下函数
imagecopyresampled() 重采样拷贝部分图像并调整大小
bool imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )
参数的意义:目标图片资源,原图资源,目标图片开始粘贴的X坐标,目标图片开始粘贴的y坐标,原图上开始复制的x坐标,原图上开始复制的y坐标,目标图的宽,目标图的高,原图的宽,原图的高,共十个参数!
imagecreatetruecolor()新建一个真彩色图像
resource imagecreatetruecolor ( int $x_size , int $y_size )
参数的意义:画布的尺寸!
分析:确定两个函数的参数
原图
目标图:
代码如下:
//创建一个真彩色的图像,支持的颜色数较多
$dst = imagecreatetruecolor(200, 200); //目标图宽高
$src = imagecreatefromjpeg('./03.jpg'); //源图
//设置背景颜色并填充
$bgcolor = imagecolorallocate($dst, 255, 0, 0);
imagefill($dst,0,0,$bgcolor);
$width = imagesx($src); //源图的宽度
$height = imagesy($src); //源图的高度
//imagecopyresampled($dst,$src,0,0,600,80,200,200,290,290); //裁剪
//将大图完整的生成缩略图
//imagecopyresampled($dst,$src,0,0,0,0,200,200,$width,$height);
//缩略图按坐标摆放
imagecopyresampled($dst,$src,10,10,600,80,180,180,290,290);
//输出到浏览器
header('content-type:image/png');
imagepng($dst);
//销毁图片资源
imagedestroy($dst);
imagedestroy($src);
?>
结果如下:
裁剪:
imagecopyresampled($dst,$src,0,0,600,80,200,200,290,290);
将大图完整的生成缩略图:
imagecopyresampled($dst,$src,0,0,0,0,200,200,$width,$height);
缩略图按坐标摆放:
imagecopyresampled($dst,$src,10,10,600,80,180,180,290,290);
——现在的努力,只为小时候吹过的牛逼! ——