在前端开发中,我们常常需要对图片进行裁剪、压缩等操作,而直接在客户端进行这些操作往往会让页面变得卡顿,反应变慢。这时候我们可以使用 direct-to-sides 这个 npm 包来解决这个问题。
什么是 direct-to-sides
直接翻译成中文是“直接转向两侧”,这个包的作用就是将图片处理操作转移到服务器端,避免给客户端造成负担,从而提高页面的性能和用户体验。它使用了底层库 sharp,所以处理速度非常快,而且操作灵活方便。
安装与使用
安装
在终端输入以下命令即可安装:
npm install direct-to-sides
使用
- 引入
const dts = require('direct-to-sides')
- API
dts 提供了大量的 API,我们以 resize 和 compress 为例:
- resize:调整图片大小
dts.resize('原图片路径', { width: 500, height: 400 }) .toFile('新图片路径') .then(() => console.log('Done resizing!'))
- compress:压缩图片
dts.compress('原图片路径') .toFile('新图片路径', { quality: 50 }) .then(() => console.log('Done compressing!'))
- 注意
- 目前仅支持 JPEG 和 PNG 格式的图片;
- 处理后的图片不能直接在浏览器中显示,需要通过服务器端发送。
示例代码
-- -------------------- ---- ------- ----- ------- - ------------------ ----- --- - --------- ----- ---- - --------------- ----- --- - -------------------------- -- ------ ------------------------------------------- ----------- -- ---- ------------------ ----- ---- -- - ------------------------------- --------- ------ ------------ - ------ ---- ------- --- -- ---------------------------- --------- ------ -------------------- -------- -- - -------------- ----------- -- ---------- -- -------------- -- -- -- -------------------- ----- ---- -- - --------------------------------- --------- ------ ------------ ---------------------------- --------- ------ ----------------------- - -------- -- -- -------- -- - -------------- -------------- -- ---------- -- -------------- -- ---------------- -- -- - ------------------- ------- -- ----------------------- --
在上面的代码中,我们使用 express 来启动服务器并提供两个接口,一个是调整大小,一个是压缩。我们可以运行这个服务器,然后访问接口,在 img 文件夹下就会生成调整后和压缩后的图片。
注意这里访问的路径是 /resize 和 /compress,与接口名一致,但实际上访问时需要在前面加上本地的地址,比如 http://localhost:3000/resize。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005730c81e8991b448e93b0