1.3.0 • Published 9 months ago

image-small v1.3.0

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

image-small工具使用说明

一、概述

image-small是一个基于Node.js开发的工具,用于压缩图像和视频文件。它能够处理多种常见的图像和视频格式,通过简单的命令行操作实现文件的压缩,并提供了一些相关的信息输出,如文件压缩前后的大小、压缩率以及视频处理的进度和时间等。

二、功能特性

  1. 图像压缩
    • 支持多种图像格式:.jpg.jpeg.png.gif.webp
    • 可以指定宽度对图像进行压缩,将压缩后的图像保存到原文件夹下(文件名前加上compressed_),并可选择删除原始文件并将压缩后的文件重命名为原始文件名。同时,会计算并显示压缩前后的文件大小以及压缩率。
  2. 视频压缩
    • 支持多种视频格式:.mp4.avi.mkv
    • 将视频压缩到指定分辨率(默认854x480),并输出压缩后的视频到原视频所在目录下(文件名前加上compressed_)。在压缩过程中,会显示处理进度,压缩完成后会显示处理时间。

三、安装依赖

  1. 在使用image-small工具之前,需要确保以下Node.js库已经安装:

    可以使用npm命令安装这些依赖,例如:

    npm install ffmpeg -g

四、使用方法

  1. 命令行参数
    • 运行image-small时,可以接受不同的参数来执行图像或视频的压缩操作。
    • 对于图像压缩:
      • 命令格式:image-small [imageFolder] [width]
      • imageFolder:要压缩图像的文件夹路径。
      • width:指定图像压缩后的宽度(单位:像素),默认800。
    • 对于视频压缩:
      • 命令格式:image-small [videoFile] --video
      • videoFile:要压缩的视频文件路径。
  2. 示例
    • 图像压缩示例
      • 假设要将/path/to/images文件夹中的图像压缩为宽度为600像素的图像,可以在命令行执行:
      			 image-small . 压缩当前目录下的所有图片
      image-small /path/to/images 600
      	 
    • 视频压缩示例
      • 要压缩/path/to/video.mp4视频文件,可以执行:
      image-small /path/to/video.mp4 --video

五、代码结构

  1. showHelp函数
    • 功能:在控制台显示帮助信息,包括工具名称、版本、用法示例、支持的文件格式以及功能概述等内容,然后退出进程。
    • 使用方法:当用户输入的命令参数不符合要求或者用户请求查看帮助时调用。
  2. formatBytes函数
    • 功能:将字节数转换为更易读的格式(如KB、MB等),接受字节数和可选的小数位数作为参数。
    • 使用方法:在图像和视频压缩过程中,用于将文件大小转换为易读格式以便于在控制台输出。
  3. compressImagesInFolder函数
    • 功能:处理指定文件夹中的图像文件压缩操作。它读取文件夹中的文件,筛选出支持的图像格式,然后使用sharp库对图像进行压缩、保存、计算文件大小和压缩率等操作,并在控制台输出相关信息。
    • 使用方法:当执行图像压缩命令时,该函数被调用,传入要压缩图像的文件夹路径和指定的宽度值。
  4. compressVideosInFolder函数
    • 功能:处理视频文件的压缩操作。它获取视频文件的绝对路径和所在目录,构建输出文件的名称,然后使用fluent - ffmpeg库对视频进行压缩操作,在压缩过程中显示进度,压缩完成后显示处理时间等信息。
    • 使用方法:当执行视频压缩命令时,该函数被调用,传入要压缩的视频文件路径。

六、注意事项

  1. 在运行视频压缩操作时,虽然代码尝试设置多线程(当前可能因fluent-ffmpeg版本问题而注释掉相关代码),但在实际应用中可能需要根据系统资源(如CPU核心数)和ffmpeg版本调整多线程设置以获得最佳性能。
  2. 对于图像压缩,在删除原始文件和重命名压缩后的文件时需谨慎操作,确保备份重要文件,以免数据丢失。
1.3.0

9 months ago

1.2.2

9 months ago

1.2.0

9 months ago

1.1.2

9 months ago

1.1.1

9 months ago

1.0.6

9 months ago

1.0.4

9 months ago

1.0.3

9 months ago

1.0.2

9 months ago

1.0.1

9 months ago