0.3.4 • Published 12 months ago

@candriajs/image-tool v0.3.4

Weekly downloads
-
License
GNU General Publi...
Repository
github
Last release
12 months ago

image-tool

介绍

image-tool是一个图像处理库,提供一些图像处理,如图像旋转,gif变速等

安装

npm install @candriajs/image-tool

快速使用

import * as imageTool from '@candriajs/image-tool';
const buffer = await fs.readFile('loli.png');
imageTool.rotate(buffer, 96.0); // 旋转图片,返回Buffer
await fs.writeFile('loli2.png', buffer);

使用

📊 查看图片信息

imageTool.image_info(buffer: Buffer): ImageInfo
  • buffer: 输入的图像二进制数据(如 PNG/JPG/GIF) 返回值:包含以下字段的对象:
  • width: 图像宽度(单位像素)
  • height: 图像高度(单位像素)
  • is_multi_frame: 是否为动图(如 GIF 多帧动画)
  • frameCount: 动图帧数(仅当 is_multi_frame === true 时存在)
  • average_duration: 动图平均帧间隔时间(单位秒,仅当 is_multi_frame === true 时存在)

🔁 旋转图片

imageTool.image_rotate(buffer: Buffer, angle?: number): Buffer
  • buffer: 输入的图像二进制数据(如 PNG/JPG/GIF)
  • angle: 旋转角度(单位为度),支持任意角度旋转(例如 90.0, 45.0),默认为 90.0
  • 返回值:旋转后的图像 Buffer

📏 调整大小

imageTool.image_resize(buffer: Buffer, width?: number, height?: number): Buffer
  • buffer: 输入的图像二进制数据
  • width: 目标宽度(可选)
  • height: 目标高度(可选)
  • 说明:可指定宽度或高度,支持等比缩放;若仅提供一个参数,则另一个按比例计算

✂️ 裁剪图片

imageTool.image_crop(buffer: Buffer, left: number, top: number, width: number, height: number): Buffer
  • buffer: 输入的图像二进制数据
  • left: 裁剪区域左上角 X 坐标
  • top: 裁剪区域左上角 Y 坐标
  • width: 裁剪区域宽度
  • height: 裁剪区域高度

📷 图像翻转

// 水平翻转
imageTool.image_flip_horizontal(buffer: Buffer): Buffer

// 垂直翻转
imageTool.image_flip_vertical(buffer: Buffer): Buffer

🎨 图像效果

// 灰度化
imageTool.image_grayscale(buffer: Buffer): Buffer

// 反色
imageTool.image_invert(buffer: Buffer): Buffer

// 颜色滤镜
imageTool.image_color_mask(buffer: Buffer, hax_code: string): Buffer

🧩 图像拼接

// 水平拼接
imageTool.image_merge_horizontal(images: Buffer[]): Buffer

// 垂直拼接
imageTool.image_merge_vertical(images: Buffer[]): Buffer

🎬 GIF 操作

// GIF 分解
imageTool.gif_split(buffer: Buffer): Buffer[]
- `buffer`: 输入的 GIF 图像数据
- 返回值:包含所有帧的 Buffer 数组

// GIF 合成
imageTool.gif_merge(images: Buffer[], duration?: number): Buffer
- `images`: 要合成的图像 Buffer 数组
- `duration`: 每帧的间隔时间(秒),可选参数
- 返回值:合成的 GIF 图像 Buffer

// GIF 倒放
imageTool.gif_reverse(buffer: Buffer): Buffer
- `buffer`: 输入的 GIF 图像数据
- 返回值:倒放后的 GIF 图像 Buffer
- 注意:如果输入不是动图或帧数小于等于 1,将返回错误

// GIF 变速
imageTool.gif_change_duration(buffer: Buffer, duration: number): Buffer
- `buffer`: 输入的 GIF 图像数据
- `duration`: 每帧的间隔时间(秒),如果为 0 则保持原速
- 返回值:变速后的 GIF 图像 Buffer
- 注意:如果输入不是动图或帧数小于等于 1,将返回错误

贡献者 👨‍💻👩‍💻

Alt

资源 📚

0.3.4

12 months ago

0.3.3

12 months ago

0.3.2

12 months ago

0.3.1

12 months ago

0.3.0

12 months ago

0.2.0

12 months ago

0.1.11

12 months ago

0.1.10

12 months ago

0.0.4

12 months ago

0.0.3

12 months ago

0.0.2

12 months ago

0.0.1

12 months ago