image

image

image模块提供了一个高效、易用的接口来进行图片处理。

初始化

名称类型参数返回值说明
createImage方法buf:BufferImage创建一个image对象
openImage方法path:stringImage打开一个image对象
qrcodeEncode方法config:objectBuffer生成二维码
qrcodeDecode方法qrcode:Readerstring解析二维码

createImage

createImage 方法创建一个新的 ImgFile 对象,该对象可以用于进一步的图像操作。这个方法需要一个 Buffer 参数,该参数包含图像的数据。

参数

  • buf (Buffer): 包含图像数据的缓冲区。

返回值

  • ImgFile: 一个新的 ImgFile 对象,可以用于图像处理操作。

示例

import image from "image";

// 假设已经有一个图像数据的 Buffer
let imgDataBuffer = new Buffer(imageData);
let img = image.createImage(imgDataBuffer);

openImage

openImage 方法用于从文件系统中加载一个图像文件,并创建一个 ImgFile 对象。这个方法需要文件的路径作为参数。

参数

  • path (string): 图像文件的路径。

返回值

  • ImgFile: 一个包含已加载图像的 ImgFile 对象。

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");
console.log(img);

qrcodeEncode

qrcodeEncode 方法用于生成二维码图片

参数

  1. config:object
{
    //二维码内容
    content:"你好中国",
    //错误检测/恢复级别: 
    //0: L级 7%的错误恢复
    //1: M级 15%的错误恢复率
    //2: Q级 25%的错误恢复率
    //3: H级 30%的错误恢复率
    level:1,
    //图像宽度和高度,单位:像素
    size:300,
    //前景色:[R,G,B,A],分表表示:红色(Red)、绿色(Green)、蓝色(Blue)和透明度(Alpha),取值范围是 0 到 255,默认黑色:[0,0,0,255]
    foregroundColor:[255,0,0,255],
    //背景色:[R,G,B,A],分表表示:红色(Red)、绿色(Green)、蓝色(Blue)和透明度(Alpha),取值范围是 0 到 255,默认白色:[255,255,255,255]
    backgroundColor:[0,0,0,255],
    //没有边框,默认:false
    disableBorder:false,
}

示例

import image from "image";

let config = {
	content: "你好中国",
	level: 1,
	size: 300
}
//返回二维码图片的Buffer对象
let qrcode = image.qrcodeEncode(config)
//创建文件
let file = fs.openFile("./1.png", ["create", "readWrite"])
//将二维码图片保存到文件中
file.write(qrcode)

qrcodeDecode

qrcodeDecode 方法用于解析二维码内容

参数

  1. qrcode:Reader 二维码图片文件对应的Reader对象

示例

import image from "image";
//读取本地二维码图片
let file = fs.openFile("./1.png", ["readOnly"])
//因为file对象已实现Reader接口,所以直接传递file就可以
let content = image.qrcodeDecode(file)
//打印二维码中的内容
console.log(content)

Image

Image 对象提供了多种操作图像的方法,如下所述:

方法概述

Image 对象提供了多种操作图像的方法,如下所述:

名称类型参数返回值说明
bounds属性object返回图片的基本属性
toFileFunctionpath:stringboolean将图像保存到指定的文件路径,成功返回 true
resizeFunctionwidth:int,height:int ImgFile调整图像大小,宽度或高度为 null 时保持原尺寸
convertFormatFunctionformat:stringImgFile将图像转换为指定的格式(如 jpeg, png, bmp
cropFunctionx:int,y:int,width:int,height:intImgFile裁剪图像,指定左上角坐标和裁剪区域的宽度与高度
rotateFunctionangle:intImgFile旋转图像,支持的角度有 90, 180, 270 度
flipFunctiondirection:stringImgFile翻转图像,方向可以是 horizontalvertical
compressJPGFunctionquality:intImgFile调整 JPEG 图像的质量,质量值在 0 到 100 之间
compressPNGFunctioncompression:stringImgFile优化 PNG 图像压缩,可选择 default, no, speed, best
compressSizeFunctionquality:intImgFile等比例放大缩小图片

bounds

bounds 属性返回图像的基本属性,包括宽度和高度、图片格式。

示例代码

import image from "image";

let img = image.openImage("/path/to/image.jpg");
console.log(img.bounds);

toFile

将图像保存到指定的文件路径。

示例代码

import image from "image";

let img = image.openImage("/path/to/image.jpg");
let result = img.toFile("/path/to/output.jpg");
console.log(result); // 输出 true 如果保存成功 

resize

调整图像的大小。如果 widthheightnull,则保持原始尺寸不变。

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");

// 调整图像大小,并保持原始高度
let resizedImg = img.resize(2000, null);
console.log(resizedImg);

convertFormat

将图像转换为指定的格式,如 jpegpng

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");

// 转换图像格式到 PNG
let formattedImg = img.convertFormat("png");
console.log(formattedImg);

crop

裁剪图像。参数 x 和 y 指定左上角的坐标,widthheight 指定裁剪区域的宽度和高度。

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");

// 裁剪图像
let croppedImg = img.crop(100, 50, 300, 200);
console.log(croppedImg);

rotate

旋转图像,角度参数应为 90, 180, 或 270

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");

// 旋转图像 90 度
let rotatedImg = img.rotate(90);
console.log(rotatedImg);

flip

翻转图像,方向可以是 horizontalvertical

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");

// 水平翻转图像
let flippedImg = img.flip("horizontal");
console.log(flippedImg);

compressJPG

调整 JPEG 图像的质量,质量值应在 0 到 100 之间。

示例

import image from "image";

let img = image.openImage("/path/to/image.jpg");

// 将 JPEG 图像质量调整为 10
let qualityAdjustedImg = img.compressJPG(10);
console.log(qualityAdjustedImg);

compressPNG

优化 PNG 图像压缩,支持 default, no, speed, best

示例

import image from "image";

let img = image.openImage("/path/to/image.png");

// 使用最佳压缩优化 PNG 图像
let compressedImg = img.compressPNG("best");
console.log(compressedImg);

compressSize

等比例放大缩小图片

示例

import image from "image";

let img = image.openImage("/path/to/image.png");

let img2 = img.compressSize(0.5);
console.log(img2.read().toString("base64"));
更新时间 9/26/2024, 6:49:27 PM