0.3.4 • Published 1 year ago

@candriajs/image-tool v0.3.4

Weekly downloads
-
License
GNU General Publi...
Repository
github
Last release
1 year 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

1 year ago

0.3.3

1 year ago

0.3.2

1 year ago

0.3.1

1 year ago

0.3.0

1 year ago

0.2.0

1 year ago

0.1.11

1 year ago

0.1.10

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago