1.0.2 • Published 4 months ago

@lx-frontend/img-compress v1.0.2

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
4 months ago

@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。

1.0.2

4 months ago

1.0.1

5 months ago

1.0.0

5 months ago