0.3.4 • Published 12 months ago
@candriajs/image-tool v0.3.4
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): ImageInfobuffer: 输入的图像二进制数据(如 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): Bufferbuffer: 输入的图像二进制数据(如 PNG/JPG/GIF)angle: 旋转角度(单位为度),支持任意角度旋转(例如 90.0, 45.0),默认为 90.0- 返回值:旋转后的图像 Buffer
📏 调整大小
imageTool.image_resize(buffer: Buffer, width?: number, height?: number): Bufferbuffer: 输入的图像二进制数据width: 目标宽度(可选)height: 目标高度(可选)- 说明:可指定宽度或高度,支持等比缩放;若仅提供一个参数,则另一个按比例计算
✂️ 裁剪图片
imageTool.image_crop(buffer: Buffer, left: number, top: number, width: number, height: number): Bufferbuffer: 输入的图像二进制数据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,将返回错误