@lx-frontend/img-compress
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@lx-frontend/img-compress

一个用来操作图片和获取图片信息的工具库。

安装

pnpm i -D @lx-frontend/img-compress

使用

导入函数并调用

const {
  getImgsUnderFloderNeedCompress,
  findAllImgsNeedMoveToLocal,
  getPngShouldTransferToJpg
} = require('@lx-frontend/img-compress')

getImgsUnderFloderNeedCompress(/* 文件夹路径 */)
// ...
函数 功能
compressImage 压缩单张图片
getImgsUnderFloderNeedCompress 获取文件夹下需要压缩的图片
isImgNeedCompress 判断图片是否需要压缩
compressImagesUnderFloderIfNeeded 找到文件夹下可以压缩的图片,压缩并输出到目标文件夹
getAllImgInfoUnderFloderByExt 获取文件夹下所有以参数ext为后缀名的图片,如'.png'
isNeedMoveToLocal 判断图片是否需要作为本地图片使用
findAllImgsNeedMoveToLocal 获取文件夹下所有应该作为本地图片使用的图片列表
isPngNeedTransferToJpg 判断png图盘是否需要转换成jpg
getPngShouldTransferToJpg 获取文件夹下所有需要转换成jpg的png图片
transferPngToJpg 将png图片转换成jpg,并输出到目标路径
transferAllPngToJpgUnderFloderIfNeeded 将文件夹下所有需要转换成jpg的png图片转换成jpg,并输出到目标文件夹

命令方式使用

命令 功能
imgX 显示所有可用命令
isImgNeedCompress 检查图片是否需要压缩
getAllImgNeedCompressUnderFloder 获取文件夹下所有需要压缩的图片
compressImgUnderFloderIfNeeded 找到文件夹下所有需要压缩的图片,压缩后,输出到目标文件夹
compressImg 压缩单张图片
isNeedMoveToLocal 检查图片是否需要移动到本地
getAllNeedMoveToLocal 获取文件夹下所有需要移动到本地的图片
isPngNeedTransToJpg 检查png图片是否需要转换为jpg
getAllPngShouldTransferToJpg 获取指定文件夹下所有需要转换为jpg的png图片
transferPngToJpg 将png图片转换为jpg
transferAllPngToJpgUnderFloderIfNeeded 找到所有需要转换为jpg的png图片,转换后,输出到目标文件夹

举例:imgX getAllImgNeedCompressUnderFloder path/to/src 打印path/to/src下所有需要压缩的图片路径

具体使用方式,请使用imgX [命令名] -h查看

imgX可以打印所有可以使用的命令和相关信息

特别说明

Q: 工具库压缩质量选取的是多少? A: 该库采用的sharp进行图片操作,压缩质量默认85。函数提供了修改这个值的参数,但是命令行没有提供修改的接口。

Q: 工具库是如何判断图片是否需要压缩? A: 工具库首先尝试对目标图片进行了压缩,然后获取压缩后的图片大小和压缩之前的大小对比,如果图片体积缩小了30%以上,可以认为图片需要压缩。

Q: 对压缩过的图片再进行是否需要压缩判断,是否会二次压缩? A: 不会,经过压缩的图片,再次压缩已经没有多少优化空间了,即使降低压缩质量,也只能获得微小的体积优化,远远不及30%。

Q: 如何判断图片是否应该放在远程还是本地? A: 默认图片如果小于1KB,放在本地,大于1KB,可按需要放在本地或者远程。暂时没有提供修改这个阈值的入口。

Q: 如何判断png是否需要转换为jpg? A: sharp可以遍历图片的所有像素点,如果所有的像素点都是不透明的,则可以判断可以转为jpg。

Readme

Keywords

none

Package Sidebar

Install

npm i @lx-frontend/img-compress

Weekly Downloads

4

Version

1.0.2

License

ISC

Unpacked Size

76.9 kB

Total Files

35

Last publish

Collaborators

  • liuzihao0413
  • ruqimobile
  • haiyulu
  • erica.liuyj
  • pok.h
  • chenzian
  • azumia
  • jeely
  • lichao.franklee
  • mind29
  • yuki.liu
  • lixinleon
  • frontbot
  • owen.huang
  • tiny.tu
  • simba.wang