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() 方法建立一張440x240 的TRUECOLOR 映像,並用colorAllocate() 方法來建立一張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;