image-small
v1.3.0
Published
An easy images compress tool.
Downloads
88
Maintainers
Readme
image-small
工具使用说明
一、概述
image-small
是一个基于Node.js开发的工具,用于压缩图像和视频文件。它能够处理多种常见的图像和视频格式,通过简单的命令行操作实现文件的压缩,并提供了一些相关的信息输出,如文件压缩前后的大小、压缩率以及视频处理的进度和时间等。
二、功能特性
- 图像压缩
- 支持多种图像格式:
.jpg
、.jpeg
、.png
、.gif
、.webp
。 - 可以指定宽度对图像进行压缩,将压缩后的图像保存到原文件夹下(文件名前加上
compressed_
),并可选择删除原始文件并将压缩后的文件重命名为原始文件名。同时,会计算并显示压缩前后的文件大小以及压缩率。
- 支持多种图像格式:
- 视频压缩
- 支持多种视频格式:
.mp4
、.avi
、.mkv
。 - 将视频压缩到指定分辨率(默认854x480),并输出压缩后的视频到原视频所在目录下(文件名前加上
compressed_
)。在压缩过程中,会显示处理进度,压缩完成后会显示处理时间。
- 支持多种视频格式:
三、安装依赖
在使用
image-small
工具之前,需要确保以下Node.js库已经安装:可以使用
npm
命令安装这些依赖,例如:npm install ffmpeg -g
四、使用方法
- 命令行参数
- 运行
image-small
时,可以接受不同的参数来执行图像或视频的压缩操作。 - 对于图像压缩:
- 命令格式:
image-small [imageFolder] [width]
imageFolder
:要压缩图像的文件夹路径。width
:指定图像压缩后的宽度(单位:像素),默认800。
- 命令格式:
- 对于视频压缩:
- 命令格式:
image-small [videoFile] --video
videoFile
:要压缩的视频文件路径。
- 命令格式:
- 运行
- 示例
- 图像压缩示例
- 假设要将
/path/to/images
文件夹中的图像压缩为宽度为600像素的图像,可以在命令行执行:
image-small . 压缩当前目录下的所有图片 image-small /path/to/images 600
- 假设要将
- 视频压缩示例
- 要压缩
/path/to/video.mp4
视频文件,可以执行:
image-small /path/to/video.mp4 --video
- 要压缩
- 图像压缩示例
五、代码结构
showHelp
函数- 功能:在控制台显示帮助信息,包括工具名称、版本、用法示例、支持的文件格式以及功能概述等内容,然后退出进程。
- 使用方法:当用户输入的命令参数不符合要求或者用户请求查看帮助时调用。
formatBytes
函数- 功能:将字节数转换为更易读的格式(如KB、MB等),接受字节数和可选的小数位数作为参数。
- 使用方法:在图像和视频压缩过程中,用于将文件大小转换为易读格式以便于在控制台输出。
compressImagesInFolder
函数- 功能:处理指定文件夹中的图像文件压缩操作。它读取文件夹中的文件,筛选出支持的图像格式,然后使用
sharp
库对图像进行压缩、保存、计算文件大小和压缩率等操作,并在控制台输出相关信息。 - 使用方法:当执行图像压缩命令时,该函数被调用,传入要压缩图像的文件夹路径和指定的宽度值。
- 功能:处理指定文件夹中的图像文件压缩操作。它读取文件夹中的文件,筛选出支持的图像格式,然后使用
compressVideosInFolder
函数- 功能:处理视频文件的压缩操作。它获取视频文件的绝对路径和所在目录,构建输出文件的名称,然后使用
fluent - ffmpeg
库对视频进行压缩操作,在压缩过程中显示进度,压缩完成后显示处理时间等信息。 - 使用方法:当执行视频压缩命令时,该函数被调用,传入要压缩的视频文件路径。
- 功能:处理视频文件的压缩操作。它获取视频文件的绝对路径和所在目录,构建输出文件的名称,然后使用
六、注意事项
- 在运行视频压缩操作时,虽然代码尝试设置多线程(当前可能因
fluent-ffmpeg
版本问题而注释掉相关代码),但在实际应用中可能需要根据系统资源(如CPU核心数)和ffmpeg
版本调整多线程设置以获得最佳性能。 - 对于图像压缩,在删除原始文件和重命名压缩后的文件时需谨慎操作,确保备份重要文件,以免数据丢失。