image
image
image模块提供了一个高效、易用的接口来进行图片处理。
初始化
名称 | 类型 | 参数 | 返回值 | 说明 |
---|---|---|---|---|
createImage | 方法 | buf:Buffer | Image | 创建一个image对象 |
openImage | 方法 | path:string | Image | 打开一个image对象 |
qrcodeEncode | 方法 | config:object | Buffer | 生成二维码 |
qrcodeDecode | 方法 | qrcode:Reader | string | 解析二维码 |
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
方法用于生成二维码图片
参数
- 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
方法用于解析二维码内容
参数
- 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 | 返回图片的基本属性 | |
toFile | Function | path:string | boolean | 将图像保存到指定的文件路径,成功返回 true |
resize | Function | width:int,height:int | ImgFile | 调整图像大小,宽度或高度为 null 时保持原尺寸 |
convertFormat | Function | format:string | ImgFile | 将图像转换为指定的格式(如 jpeg , png , bmp ) |
crop | Function | x:int,y:int,width:int,height:int | ImgFile | 裁剪图像,指定左上角坐标和裁剪区域的宽度与高度 |
rotate | Function | angle:int | ImgFile | 旋转图像,支持的角度有 90, 180, 270 度 |
flip | Function | direction:string | ImgFile | 翻转图像,方向可以是 horizontal 或 vertical |
compressJPG | Function | quality:int | ImgFile | 调整 JPEG 图像的质量,质量值在 0 到 100 之间 |
compressPNG | Function | compression:string | ImgFile | 优化 PNG 图像压缩,可选择 default , no , speed , best |
compressSize | Function | quality:int | ImgFile | 等比例放大缩小图片 |
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
调整图像的大小。如果 width
或 height
为 null
,则保持原始尺寸不变。
示例
import image from "image";
let img = image.openImage("/path/to/image.jpg");
// 调整图像大小,并保持原始高度
let resizedImg = img.resize(2000, null);
console.log(resizedImg);
convertFormat
将图像转换为指定的格式,如 jpeg
或 png
。
示例
import image from "image";
let img = image.openImage("/path/to/image.jpg");
// 转换图像格式到 PNG
let formattedImg = img.convertFormat("png");
console.log(formattedImg);
crop
裁剪图像。参数 x 和 y 指定左上角的坐标,width
和 height
指定裁剪区域的宽度和高度。
示例
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
翻转图像,方向可以是 horizontal
或 vertical
。
示例
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"));