使用PHP生产缩略图

PHP生成缩略图教程

使用PHP生产缩略图

  • (1)获取原图像的大小

    对于需要上传或者是给定路径的图像首先使用PHP中getimagesize()函数进行获取图片的大小。
    代码如下:

//获取图像路径
$img='./default.jpg';
//输出结果:Array([0] => 122 [1] => 118…… )
print_r(getimagesize($img));

当知道原图像的路径时使用getimagesize()函数获取到图像大小,返回数组中的下标为0的元素表示图像的宽;下标为1的元素表示图像的高。

  • (2)计算缩略图的大小
    例如:
    假设原图像的宽和高分别使用width和width和widthheight来表示,通过缩放比例来获取缩略图大小:
//方法一
$percent = 0.2;                                 //定义缩略图的缩放比例
$thu_width = $width * $percent;       //计算缩略图的宽
$thu_height = $height * $percent;    //计算缩略图的高
//方法二
$thu_width = 100;                                     //定义出缩略图的宽
$thu_height = $thu_width*$heigth/$width;//计算出缩略图的高
  • (3)创建画布
    画布理解就是画纸。
    所以,在生成缩略图前要使用PHP函数创建画布
//方法一:新建画布
$thumb1 = imagecreate(100,50);                              //基于调色板256方式进行创建
$thumb2 = imagecreatetruecolor(100,50);                //真色彩方式创建

//方法二:基于已有图片创建画布
$thumb = imagecreatefrmjpeg("./default.jpg");          //基于已有的jpg图片创建

注:

  1. imagecreate()函数用于创建基于普通调色板的图像只能支持256色;
  2. imagecreatetruecolor()函数创建的画布支持的色彩较为丰富但是不支持GIF格式。

当基于已有图片创建画布时,是根据已有图片的类型进行创建的。例如,已知一个png格式的图片,则需要imagecreatefrompng()函数来进行创建画布。

- (4)生成缩略图
使用imagecopyredized()函数实现缩略图的生成:

imagecopyresized($dst,$src,0,0,0,0,$dst_width,$dst_height,$src_width,$src_height);
//$dst表示目标图像
//src表示原图像
//"0,0,0,0"一次表示目标图像和原图像的横坐标和纵坐标
//$dst_width && $dst_height表示目标图像的宽和高
//$src_width && $src_height表示原图像的宽和高
//原图像从原点位置开始按着目标图像的比例进行缩放,并复制到目标图原点位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值