Module 基础模块

模块 gd

gd 模块是对图像进行处理的模块,提供了创建、操作、存储图像的功能,并提供了丰富的颜色、过滤器、绘制等相关操作。

下面是一个示例代码,使用 gd 模块创建并操作一张图像:

1 2 3 4 5 6 7 8 9 10
var gd = require('gd'); var img = gd.create(440, 240); // create a 440x240 truecolor image var r = img.colorAllocate(255, 0, 0); // allocate two colors var b = img.colorAllocate(0, 0, 255); img.rectangle(40, 40, 50, 50, r); // draw a rectangle img.filledEllipse(80, 100, 30, 50, b); // fill a ellipse var data = img.getData(gd.PNG); // save image as PNG data

在这个示例中,我们首先使用 create() 方法创建一张 440x240 的 TRUECOLOR 图像,并用 colorAllocate() 方法分配了两种颜色,接着使用 rectangle() 方法绘制矩形,在矩形的右上方绘制了一个填充的椭圆,最后使用 getData() 方法将图像保存为 PNG 格式的二进制数据。

静态函数

create

创建一个新图像

1 2 3
static Image gd.create(Integer width, Integer height, Integer color = gd.TRUECOLOR) async;

调用参数:

  • width: Integer, 指定图像宽度
  • height: Integer, 指定图像高度
  • color: Integer, 指定图像类型,允许值为 gd.TRUECOLORgd.PALETTE

返回结果:

  • Image, 返回创建成功的图像对象

load

从格式数据中解码图像

1
static Image gd.load(Buffer data) async;

调用参数:

  • data: Buffer, 给定解码的图像数据

返回结果:

  • Image, 返回解码成功的图像对象

从流对象中解码图像

1
static Image gd.load(SeekableStream stm) async;

调用参数:

返回结果:

  • Image, 返回解码成功的图像对象

从指定文件中解码图像

1
static Image gd.load(String fname) async;

调用参数:

  • fname: String, 指定文件名

返回结果:

  • Image, 返回解码成功的图像对象

rgb

通过 rgb 颜色分量生成组合颜色

1 2 3
static Integer gd.rgb(Integer red, Integer green, Integer blue);

调用参数:

  • red: Integer, 红色分量,范围为 0-255
  • green: Integer, 绿色分量,范围为 0-255
  • blue: Integer, 蓝色分量,范围为 0-255

返回结果:

  • Integer, 返回组合颜色

rgba

通过 rgba 颜色分量生成组合颜色

1 2 3 4
static Integer gd.rgba(Integer red, Integer green, Integer blue, Number alpha);

调用参数:

  • red: Integer, 红色分量,范围为 0-255
  • green: Integer, 绿色分量,范围为 0-255
  • blue: Integer, 蓝色分量,范围为 0-255
  • alpha: Number, 透明分量,范围为 0.0-1.0

返回结果:

  • Integer, 返回组合颜色

hsl

通过 hsl 颜色分量生成组合颜色

1 2 3
static Integer gd.hsl(Number hue, Number saturation, Number lightness);

调用参数:

  • hue: Number, 色相分量,范围为 0-360
  • saturation: Number, 饱和度分量,范围为 0.0-1.0
  • lightness: Number, 亮度分量,范围为 0.0-1.0

返回结果:

  • Integer, 返回组合颜色

hsla

通过 hsla 颜色分量生成组合颜色

1 2 3 4
static Integer gd.hsla(Number hue, Number saturation, Number lightness, Number alpha);

调用参数:

  • hue: Number, 色相分量,范围为 0-360
  • saturation: Number, 饱和度分量,范围为 0.0-1.0
  • lightness: Number, 亮度分量,范围为 0.0-1.0
  • alpha: Number, 透明分量,范围为 0.0-1.0

返回结果:

  • Integer, 返回组合颜色

hsb

通过 hsb 颜色分量生成组合颜色

1 2 3
static Integer gd.hsb(Number hue, Number saturation, Number brightness);

调用参数:

  • hue: Number, 色相分量,范围为 0-360
  • saturation: Number, 饱和度分量,范围为 0.0-1.0
  • brightness: Number, 明亮程度分量,范围为 0.0-1.0

返回结果:

  • Integer, 返回组合颜色

hsba

通过 hsba 颜色分量生成组合颜色

1 2 3 4
static Integer gd.hsba(Number hue, Number saturation, Number brightness, Number alpha);

调用参数:

  • hue: Number, 色相分量,范围为 0-360
  • saturation: Number, 饱和度分量,范围为 0.0-1.0
  • brightness: Number, 明亮程度分量,范围为 0.0-1.0
  • alpha: Number, 透明分量,范围为 0.0-1.0

返回结果:

  • Integer, 返回组合颜色

color

通过字符串生成组合颜色

1
static Integer gd.color(String color);

调用参数:

  • color: String, 指定颜色的字符串,如:"#ff0000", "ff0000", "#f00", "f00"

返回结果:

  • Integer, 返回组合颜色

常量

NONE

图像格式常量,标示当前图像来源为未知

1
const gd.NONE = 0;

JPEG

图像格式常量,标示当前图像来源为 jpeg 格式数据

1
const gd.JPEG = 1;

GIF

图像格式常量,标示当前图像来源为 gif 格式数据

1
const gd.GIF = 2;

PNG

图像格式常量,标示当前图像来源为 png 格式数据

1
const gd.PNG = 3;

TIFF

图像格式常量,标示当前图像来源为 tiff 格式数据

1
const gd.TIFF = 4;

BMP

图像格式常量,标示当前图像来源为 bmp 格式数据

1
const gd.BMP = 5;

WEBP

图像格式常量,标示当前图像来源为 webp 格式数据

1
const gd.WEBP = 6;

TRUECOLOR

图像类型常量,标示当前图像为真彩色图像

1
const gd.TRUECOLOR = 0;

PALETTE

图像类型常量,标示当前图像为调色板图像

1
const gd.PALETTE = 1;

ARC

扇形绘制样式,绘制一条连接开始和结束点的圆弧

1
const gd.ARC = 0;

CHORD

扇形绘制样式,绘制一条连接原点,开始和结束点的直线

1
const gd.CHORD = 1;

NOFILL

扇形绘制样式,绘制不填充的扇形

1
const gd.NOFILL = 2;

EDGED

扇形绘制样式,绘制一条连接起点和终点的弧和连接原点的直线

1
const gd.EDGED = 4;

HORIZONTAL

镜像方向,横向做镜像处理

1
const gd.HORIZONTAL = 1;

VERTICAL

镜像方向,纵向做镜像处理

1
const gd.VERTICAL = 2;

BOTH

镜像方向,横向和纵向都做镜像处理

1
const gd.BOTH = 3;

LEFT

旋转方向,向左旋转

1
const gd.LEFT = 1;

旋转方向,向右旋转

1
const gd.RIGHT = 2;

MEAN_REMOVAL

滤波器类型:用平均移除法来达到轮廓效果

1
const gd.MEAN_REMOVAL = 0;

EDGEDETECT

滤波器类型:用边缘检测来突出图像的边缘

1
const gd.EDGEDETECT = 1;

EMBOSS

滤波器类型:使图像浮雕化

1
const gd.EMBOSS = 2;

SELECTIVE_BLUR

滤波器类型:模糊图像

1
const gd.SELECTIVE_BLUR = 3;

GAUSSIAN_BLUR

滤波器类型:用高斯算法模糊图像

1
const gd.GAUSSIAN_BLUR = 4;

NEGATE

滤波器类型:将图像中所有颜色反转

1
const gd.NEGATE = 5;

GRAYSCALE

滤波器类型:将图像转换为灰度图

1
const gd.GRAYSCALE = 6;

SMOOTH

滤波器类型:使图像更柔滑,用arg1设定柔滑级别

1
const gd.SMOOTH = 7;

BRIGHTNESS

滤波器类型:改变图像的亮度,用arg1设定亮度级别,取值范围是-255~255

1
const gd.BRIGHTNESS = 8;

CONTRAST

滤波器类型:改变图像的对比度,用arg1设定对比度级别,取值范围是0~100

1
const gd.CONTRAST = 9;

COLORIZE

滤波器类型:改变图像的色调,用arg1、arg2、arg3分别指定red、blue、green,每种颜色范围是0~255,arg4为透明度,取值返回是0~127

1
const gd.COLORIZE = 10;