原理:就是将大图缩小并另存为小图
以此图为例,使其生成缩略图!
首先要使用到以下函数
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);