PHP生成缩略图(1)--简单缩略图

原理:就是将大图缩小并另存为小图

以此图为例,使其生成缩略图!

首先要使用到以下函数

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);

原文地址:https://www.cnblogs.com/zxf100/p/6744012.html