前言:
使用动态处理可以节省流量,但由于是使用PHP
处理,会造成一点点的物理损耗(可以忽略不计)。
# 使用 composer
安装 think
扩展类
composer
require
topthink
/think
-image
由于 tp5
自带图片处理类,我们不需要再额外编写裁剪等方法。但是 tp5
的图片处理类没有输出方法,我们可以复制一份 save
方法,并命名为 preview
方法,稍作修改以用于输出。(该类文件的路径为 vendor
/topthink
/think
-image
/src
/Image
.php
,如果没有该类文件,请使用 composer
下载。)代码如下:
我们随意创建一个控制器和一个方法,例如:Image
/thumb
,调用刚刚我们修改的方法,代码如下:
public
function
thumb
($path
,$width
=160,$height
=120)
{
$image
= \think
\Image
::open
(trim
($path
,'/'));
#居中方式裁剪(更多请看 Image
类)
$image
->thumb
($width
,$height
,3)->preview
();
}
服务端配置
#Apache
Nginx
在进行图片上传时,通常会生成一张缩略图。这样做的好处是在客户端获取图片时可以更快地加载图片数据,并且可以减少服务器的带宽请求。
传统的做法是在上传图片时生成一张缩略图,但是这种做法有两个缺点。首先,会占用服务器的存储空间;其次,无法随意更改缩略图的大小。
因此,我们需要一个能够动态修改缩略图的解决方案。