对象 Image

图像处理对象,用以对图像进行转换,绘制,存储等操作

Image 对象属于 gd 模块,创建:

var img = gd.create(640, 480);
var img1 = gd.load(data);

继承关系

成员属性

width

Integer, 查询图像宽度

readonly Integer Image.width;

height

Integer, 查询图像高度

readonly Integer Image.height;

format

Integer, 查询图像来源格式,结果为 gd.PNG, gd.JPEG, gd.GIF, gd.BMP, gd.WEBP

readonly Integer Image.format;

type

Integer, 查询图像类型,结果为 gd.TRUECOLOR, gd.PALETTE

readonly Integer Image.type;

colorsTotal

Integer, 查询图像颜色表内的颜色总数

readonly Integer Image.colorsTotal;

transparent

Integer, 查询和设定指定的颜色为透明色

Integer Image.transparent;

progressive

Boolean, 查询和设定图像是否渐进式,仅支持 jpeg 格式时

Boolean Image.progressive;

alphaBlending

Boolean, 查询和设定绘图时是否计算 alpha 层,缺省为 true

Boolean Image.alphaBlending;

成员函数

getData

按照指定的格式返回图像数据

Buffer Image.getData(Integer format = gd.PNG,
    Integer quality = 85) async;

调用参数:

返回结果:


save

按照指定的格式将图像数据存入流对象

Image.save(Stream stm,
    Integer format = gd.PNG,
    Integer quality = 85) async;

调用参数:


按照指定的格式将图像数据存入指定文件,文件将被强制覆盖

Image.save(String fname,
    Integer format = gd.PNG,
    Integer quality = 85) async;

调用参数:


colorAllocate

为指定的颜色申请一个颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorAllocate(Integer red,
    Integer green,
    Integer blue);

调用参数:

返回结果:


为指定的颜色申请一个颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorAllocate(Integer color);

调用参数:

返回结果:


colorAllocateAlpha

为指定的颜色及透明申请一个颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorAllocateAlpha(Integer red,
    Integer green,
    Integer blue,
    Number alpha);

调用参数:

返回结果:


为指定的颜色及透明申请一个颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorAllocateAlpha(Integer color);

调用参数:

返回结果:


colorClosest

为指定的颜色查找一个最接近的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorClosest(Integer red,
    Integer green,
    Integer blue);

调用参数:

返回结果:


为指定的颜色查找一个最接近的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorClosest(Integer color);

调用参数:

返回结果:


colorClosestHWB

为指定的颜色查找一个最接近的颜色号,此方法使用 Hue/White/Black 计算查找最接近颜色,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorClosestHWB(Integer red,
    Integer green,
    Integer blue);

调用参数:

返回结果:


为指定的颜色查找一个最接近的颜色号,此方法使用 Hue/White/Black 计算查找最接近颜色,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorClosestHWB(Integer color);

调用参数:

返回结果:


colorClosestAlpha

为指定的颜色及透明查找一个最接近的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorClosestAlpha(Integer red,
    Integer green,
    Integer blue,
    Number alpha);

调用参数:

返回结果:


为指定的颜色及透明查找一个最接近的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorClosestAlpha(Integer color);

调用参数:

返回结果:


colorExact

查找指定的颜色对应的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorExact(Integer red,
    Integer green,
    Integer blue);

调用参数:

返回结果:


查找指定的颜色对应的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorExact(Integer color);

调用参数:

返回结果:


colorExactAlpha

查找指定的颜色及透明对应的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorExactAlpha(Integer red,
    Integer green,
    Integer blue,
    Number alpha);

调用参数:

返回结果:


查找指定的颜色及透明对应的颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorExactAlpha(Integer color);

调用参数:

返回结果:


colorResolve

查找指定的颜色对应的颜色号,如果颜色不存在,则为其申请一个新颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorResolve(Integer red,
    Integer green,
    Integer blue);

调用参数:

返回结果:


查找指定的颜色对应的颜色号,如果颜色不存在,则为其申请一个新颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgb 编码数值

Integer Image.colorResolve(Integer color);

调用参数:

返回结果:


colorResolveAlpha

查找指定的颜色及透明对应的颜色号,如果颜色不存在,则为其申请一个新颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorResolveAlpha(Integer red,
    Integer green,
    Integer blue,
    Number alpha);

调用参数:

返回结果:


查找指定的颜色及透明对应的颜色号,如果颜色不存在,则为其申请一个新颜色号,对于 gd.PALETTE 图像,颜色号为调色板索引,对于 gd.TRUECOLOR 图像,颜色号为 rgba 编码数值

Integer Image.colorResolveAlpha(Integer color);

调用参数:

返回结果:


colorDeallocate

释放指定的颜色号,释放的颜色号将会被再次申请后替换

Image.colorDeallocate(Integer color);

调用参数:


clip

设定绘图的剪切窗口,设定后,所有的绘制将被剪切在窗口内部

Image.clip(Integer x1,
    Integer y1,
    Integer x2,
    Integer y2);

调用参数:


getPixel

查询指定位置点的颜色

Integer Image.getPixel(Integer x,
    Integer y);

调用参数:

返回结果:


getTrueColorPixel

查询指定位置点的真彩色颜色

Integer Image.getTrueColorPixel(Integer x,
    Integer y);

调用参数:

返回结果:


setPixel

在指定位置画一个点

Image.setPixel(Integer x,
    Integer y,
    Integer color);

调用参数:


setThickness

设定画线的宽度,line, rectangle, arc 等方法画线时缺省宽度为一个像素,可使用此方法改变线的宽度

Image.setThickness(Integer thickness);

调用参数:


line

在指定的位置画一条线

Image.line(Integer x1,
    Integer y1,
    Integer x2,
    Integer y2,
    Integer color);

调用参数:


rectangle

在指定的位置画一个矩形

Image.rectangle(Integer x1,
    Integer y1,
    Integer x2,
    Integer y2,
    Integer color);

调用参数:


filledRectangle

在指定的位置画一个填充的矩形

Image.filledRectangle(Integer x1,
    Integer y1,
    Integer x2,
    Integer y2,
    Integer color);

调用参数:


polygon

根据给定的点绘制一个多边形

Image.polygon(Array points,
    Integer color);

调用参数:


openPolygon

根据给定的点绘制一个开放多边形

Image.openPolygon(Array points,
    Integer color);

调用参数:


filledPolygon

根据给定的点绘制一个填充多边形

Image.filledPolygon(Array points,
    Integer color);

调用参数:


ellipse

画一个椭圆

Image.ellipse(Integer x,
    Integer y,
    Integer width,
    Integer height,
    Integer color);

调用参数:


filledEllipse

画一个填充的椭圆

Image.filledEllipse(Integer x,
    Integer y,
    Integer width,
    Integer height,
    Integer color);

调用参数:


arc

画一个扇形

Image.arc(Integer x,
    Integer y,
    Integer width,
    Integer height,
    Integer start,
    Integer end,
    Integer color);

调用参数:


filledArc

画一个填充扇形

Image.filledArc(Integer x,
    Integer y,
    Integer width,
    Integer height,
    Integer start,
    Integer end,
    Integer color,
    Integer style = gd.ARC);

调用参数:


fill

从指定的点开始填充封闭区域

Image.fill(Integer x,
    Integer y,
    Integer color);

调用参数:


fillToBorder

从指定的点开始在指定颜色的边框内填充封闭区域

Image.fillToBorder(Integer x,
    Integer y,
    Integer borderColor,
    Integer color);

调用参数:


colorReplace

替换图像中指定的颜色为新颜色

Image.colorReplace(Integer src,
    Integer dst) async;

调用参数:


clone

复制当前图像为一个新图像

Image Image.clone() async;

返回结果:


resample

根据图像拉伸生成一个新尺寸的图像

Image Image.resample(Integer width,
    Integer height) async;

调用参数:

返回结果:


crop

剪切图像的一部分为一个新的图像

Image Image.crop(Integer x,
    Integer y,
    Integer width,
    Integer height) async;

调用参数:

返回结果:


flip

镜像当前图像

Image.flip(Integer dir = gd.HORIZONTAL) async;

调用参数:


rotate

旋转当前图像

Image.rotate(Integer dir) async;

调用参数:


convert

转换当前图像类型

Image.convert(Integer color = gd.TRUECOLOR) async;

调用参数:


copy

从一个图像中复制一个区域到指定的位置

Image.copy(Image source,
    Integer dstX,
    Integer dstY,
    Integer srcX,
    Integer srcY,
    Integer width,
    Integer height) async;

调用参数:


copyMerge

从一个图像中复制一个区域覆盖到指定的位置

Image.copyMerge(Image source,
    Integer dstX,
    Integer dstY,
    Integer srcX,
    Integer srcY,
    Integer width,
    Integer height,
    Integer percent) async;

调用参数:


copyMergeGray

从一个图像中复制一个区域的灰度覆盖到指定的位置

Image.copyMergeGray(Image source,
    Integer dstX,
    Integer dstY,
    Integer srcX,
    Integer srcY,
    Integer width,
    Integer height,
    Integer percent) async;

调用参数:


copyResized

将一个图像中的一个区域拉伸后复制到指定的位置

Image.copyResized(Image source,
    Integer dstX,
    Integer dstY,
    Integer srcX,
    Integer srcY,
    Integer dstW,
    Integer dstH,
    Integer srcW,
    Integer srcH) async;

调用参数:


copyResampled

将一个图像中的一个区域拉伸后复制到指定的位置,不同与 copyResized,此方法拉伸时会对图像进行抖动

Image.copyResampled(Image source,
    Integer dstX,
    Integer dstY,
    Integer srcX,
    Integer srcY,
    Integer dstW,
    Integer dstH,
    Integer srcW,
    Integer srcH) async;

调用参数:


copyRotated

将一个图像中的一个区域旋转后复制到指定的位置

Image.copyRotated(Image source,
    Number dstX,
    Number dstY,
    Integer srcX,
    Integer srcY,
    Integer width,
    Integer height,
    Number angle) async;

调用参数:


filter

把过滤器 filterType应用到图像上,根据过滤器类型传入所需参数

Image.filter(Integer filterType,
    Number arg1 = 0,
    Number arg2 = 0,
    Number arg3 = 0,
    Number arg4 = 0) async;

调用参数:

参数 filterType 可以为以下数值:


affine

根据给定的矩阵,对当前图像进行仿射

Image Image.affine(Array affine,
    Integer x = -1,
    Integer y = -1,
    Integer width = -1,
    Integer height = -1);

调用参数:

返回结果:

参数 affine 是一个数组:

affine = [a0, a1, b0, b1, a2, b2];
x ' = a0x + a1y + a2;
y ' = b0x + b1y + b2;

gaussianBlur

对当前图像进行高斯模糊处理

Image.gaussianBlur(Integer radius) async;

调用参数:


dispose

强制回收对象,调用此方法后,对象资源将立即释放

Image.dispose();

equals

比较当前对象与给定的对象是否相等

Boolean Image.equals(object expected);

调用参数:

返回结果:


toString

返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现

String Image.toString();

返回结果:


toJSON

返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合

Value Image.toJSON(String key = "");

调用参数:

返回结果:


valueOf

返回对象本身的数值

Value Image.valueOf();

返回结果: