aardio 文档

soImage 库模块帮助文档

soImage 成员列表

soImage()

创建图像

返回对象:soImageObject

soImage.checkType("*.bmp")

参数为图像路径或文件名,
返回数值格式的图像数型

soImage.gifFile("GIF文件路径",循环次数,注释)

创建GIF文件
消除方法指的是下一帧擦除上帧背景的方法,可选1,2,3

soImage.gifFile()

返回对象:soImageGifFileObject

soImageObject 成员列表

soImageObject.bpp

修改或获取图像位宽

soImageObject.bpp(8)

修改图像位宽
参数为0是获取图像当前位宽

soImageObject.bpp(8,true)

修改图像位宽,允许误差扩散

soImageObject.capture(窗口句柄,x坐标,y坐标,宽度,高度,鼠标放大百分比)

抓屏,所有参数可选,
如果不指定鼠标放大百分比则不截图不含鼠标指针,
放大百分比为 100 表示指针原始大小,忽略系统鼠标放大设置,
此函数会自动清屏并调整为合适图像位宽(BPP)
明确指定窗口或坐标缩小抓屏面积可优化性能,
使用 win.getScreenPos 可获取一个或多个显示器组成的虚拟屏幕位置与大小

soImageObject.captureWindow

在屏幕上抓取指定窗口的图像。
当指定窗口句柄时 capture 函数在窗口内截图。
但 captureWindow 是在屏幕上截取指定窗口区域的图像。
这两个函数的实现是不同的,对于窗口截图,captureWindow 的兼容性更好。

soImageObject.captureWindow(窗口句柄,x坐标,y坐标,宽度,高度)

在屏幕上抓取指定窗口客户区(不含标题栏)的图像。
除窗口句柄以外其他参数可选。

soImageObject.captureWindow(窗口句柄,x坐标,y坐标,宽度,高度,true)

在屏幕上抓取指定窗口(含标题栏)的图像。
除窗口句柄以外其他参数可选。

soImageObject.clear()

清空图像

soImageObject.cmp(匹配图像)

返回图像差异值,完全相似返回0 完全不相似为两个图片的面积相加,
精确匹配能力一般,模糊识别的能力较强

soImageObject.cmp2(匹配图像)

返回差异值,完全一样为0,完全不一样为1,通常返回的是1到0之间的小数,数字越小表示两个图片越接近相似,
精确匹配能力较差,模糊识别的能力一般

soImageObject.cmp3(匹配图像)

返回相似度,完全一样为0,完全相似返回0 完全不相似为单个图片的面积
精确匹配能力最强,模糊识别的能力最差

soImageObject.copy

复制图像

soImageObject.copy()

复制图像

返回对象:soImageObject

soImageObject.copy(左,上,右,下)

复制并剪切图像,
返回新图像,不会修改原图

soImageObject.crop(左,上,右,下)

剪切图像

soImageObject.decreaseBpp

生成最优调色版并降低像素位宽为 8 位。
此函数专用于生成颜色更加自然的 GIF 文件。

soImageObject.decreaseBpp(bpp,colors,colorBits,errorDiffusion)

生成最优调色版并降低像素位宽为 8 位。
此函数专用于生成颜色更加自然的 GIF 文件。

@bpp 参数请指定为 8,其他参数不必指定。
可选用 @colors 参数指定最大颜色数。
@colorBits 指定颜色分量有效位数,应指定为 8 或省略。
@errorDiffusion 可选指定是否允许误差扩散

soImageObject.delete()

删除图像

soImageObject.findColor(匹配颜色,x坐标,y坐标,结束x坐标,结束y坐标)

找色,除参数@1以外,所有参数可选,
参数@1使用RGB颜色数值
成功返回2个值,分别为最接近颜色的x坐标,y坐标,
失败返回null

soImageObject.findImage

找图。
注意这是找图,不能用来找文字,找验证码,
也不是提供任何样本图像都能有完美的、百分百的成功率,
查找的样本图像要尽可能的小,并尽可能裁剪去掉背景,突出查找特征

soImageObject.findImage(屏幕图像,x坐标,y坐标,结束x坐标,结束y坐标,搜索步进)

找图,除参数一以外,所有参数可选,
成功返回相似度,匹配图像的右下角坐标
└── 相似度为 0 到 100 之间的值,100 为完全相似,0 为完全不相似。

soImageObject.findImageInWindow

指定窗口找图
注意这是找图,不能用来找文字,找验证码,
也不是提供任何样本图像都能有完美的、百分百的成功率,
查找的样本图像要尽可能的小,并尽可能裁剪去掉背景,突出查找特征

soImageObject.findImageInWindow(窗口句柄,x坐标,y坐标,结束x坐标,结束y坐标,搜索步进)

找图,所有参数可选,
成功返回相似度,匹配图像的右下角坐标
└── 相似度为 0 到 100 之间的值,100 为完全相似,0 为完全不相似

soImageObject.flip()

垂直翻转

soImageObject.fromBitmap(位图句柄,色板句柄)

自位图句柄创建图像,
参数2可选

soImageObject.fromClipBD()

自剪板板获取图像

soImageObject.fromIcon(图标句柄,是否透明图标)

自图标句柄创建图像,
参数@2为可选参数

soImageObject.getBinString

以 0 表示黑色像素,1 表示白色像素,返回一个包含所有像素的字符串。
图像应为黑白图像,可调用 bpp 函数将图像转换为 1 位黑白图像,

soImageObject.getBinString(width,height)

返回一个包含所有像素的字符串,
以 0 表示黑色像素,1 表示白色像素。

可选用参数指定缩放大小,省略参数则不缩放。
@width 指定宽度,@height 指定高度,宽高必须同时指定。

soImageObject.getBits(行号)

返回指定行图像数据,指定参数时返回值为buffer类型数组
不指定参数时直接返回全部图像原始数据指针值

soImageObject.getBytes("*.bmp")

返回图像数据

soImageObject.getData()

返回图像行列数据
返回值为buffer数组

soImageObject.getDib()

返回 DIB 指针

soImageObject.getFrame()

返回图像活动帧

soImageObject.getFrameDelay()

返回帧延时

soImageObject.getHeight()

获取高度

soImageObject.getJpegQuality()

返回JPGE图像质量

soImageObject.getNumFrames()

返回图像帧数目

soImageObject.getPixel(x,y)

返回指定坐标点 RGB 颜色数值。
坐标参数为 0,0 返回第一个点的颜色。

soImageObject.getPixelIndex(x,y)

获取指定坐标颜色索引

soImageObject.getTransColor()

获取透明颜色

soImageObject.getWidth()

获取宽度

soImageObject.grayScale()

转换为灰度图

soImageObject.init(宽,高,位宽,"*.bmp")

所有参数可选

soImageObject.isValid()

图像是否有效

soImageObject.load

载入图像文件。

soImageObject.load("路径")

载入图像文件。

soImageObject.loadUrl()

自参数 @1 指定的网址加载图像,成功返回 true 。
必须提前导入 inet.http 库才能使用此函数。

soImageObject.median(2)

中值滤波,参数指定半径

soImageObject.mirror()

左右翻转

soImageObject.mix(混合图像,x坐标,y坐标,混合样式)

除参数1以外,其他参数可选,
混合样式请使用_MIX_前缀的常量

soImageObject.negative()

反相

soImageObject.ocr

基于种子连通算法的简单文本识别。
这个函数的好处是不需要其他 OCR 组件,函数实现与用法都很简单。
但仅限用于基于特定字库识别较规则的文本。
无法识别的图像请改用其他 OCR 组件。

soImage 扩展库范例中提供自动生成字库与 OCR 范例代码的工具。

soImageObject.ocr(dict,length)

参数 @dict 必须指定由 splitBinString 函数返回值生成的字库。
可选用 @length 参数指定最大字符长度。

soImageObject.paint(hdc,x坐标,y坐标,宽度,高度)

在指定GDI设备句柄上绘图,所有参数可选

soImageObject.repair(修复半径,修复次数)

修复被破坏的图片

soImageObject.resize(宽,高,插值方法)

调整图像大小,
可选用参数@3指定插值方法,可选值:
0 双线性插值,较慢
1 邻近插值,最快,效果差
2 双立方法,效果最好
默认使用双线性插值

soImageObject.resize2((宽,高,插值方法,边缘方法,禁止平均法)

调整图像大小
可选用参数@2指定插值方法,可选值如下:
1 NEIGHBOUR;2 BILINEAR;3 BSPLINE;4 BICUBIC;5 BICUBIC2;LANCZOS 6;
7 BOX;8 HERMITE;9 HAMMING;10 SINC;11 BLACKMAN;12 BESSEL; 13 GAUSSIAN;
14 QUADRATIC;15 MITCHELL;16 CATROM;17 HANNING;18 POWER;
默认值为 BICUBIC2

边缘取值可选方法如下:
1 COLOR;2 BACKGROUND;3 TRANSPARENT;4 WRAP;5 REPEAT;6 MIRROR;
默认值为 REPEAT

可选指定参数@5为 true 以禁用平均法缩小图像

soImageObject.rotateLeft()

左旋

soImageObject.rotateRight()

右旋

soImageObject.save

保存图像文件。

soImageObject.save("路径")

保存图像文件。

soImageObject.setBits(行号,数据)

修改图像指定行数据

soImageObject.setBytes(数据,"*.bmp")

修改图像数据,成功返回 true。
参数@1可以是字符串对象、buffer缓区、或普通指针
如果参数@1为普通指针,则必须在参数@3中指定内存长度
否则参数@3为可选参数(用于指定图像数据长度)。
可选在参数 @2 中用文件后缀名指定图像格式,可省略。

soImageObject.setDisposalMethod(disposalMethod)

定义 GIF 图像的背景清除方法
Potoshop 动画帧右键菜单里「处理」「不处理」其实就是这里说的背景清除方法,
0、不定义清除方法
1、不清除背景,下一帧的内容显示在当前帧的内容上面,
2、恢复背景色,然后再显示下一帧的内容
3、恢复上一帧,然后再显示下一帧的内容

可以看这里的动画演示了解这个属性的作用

soImageObject.setFrame()

设置图像活动帧,起始索引为1,
此函数并不影响当前加载的图像,
而是在下次加载图像时起作用

soImageObject.setFrameDelay(10)

修改帧延时,以0.01秒为单位

soImageObject.setJpegQuality(80)

修改JPGE图像质量,参数为1到100之间

soImageObject.setPixel(x,y,颜色)

修改指定坐标点RGB颜色数值。
坐标参数为 0,0 设置第一个点的颜色。

soImageObject.setRetreiveAllFrames(flag)

允许载入所有帧

soImageObject.setTransColor(是否透明,透明颜色)

修改透明颜色,参数@2使用RGB颜色数值
GIF 应当改用 setTransIndex

soImageObject.setTransIndex(index)

设置透明索引

soImageObject.split(行,列)

按指定的行,列数目拆分并返回多个图像,
返回值为数组

soImageObject.splitAuto(杂点系列)

自动拆分并返回多个图像。
返回值为图像数组

soImageObject.splitBinString

图像转为黑白并返回包含所有像素的字符串,以 0 表示黑色像素,1 表示白色像素。

soImageObject.splitBinString(length,width,height)

用种子连通算法分割为多个图像。
参数 @1 指定最大返回图像数目,可选用 @width,@height 参数指定图像缩放到指定大小。
图像转为黑白并返回包含所有像素的字符串,以 0 表示黑色像素,1 表示白色像素。

soImageObject.splitCmyk()

拆分为CMYK四个图像

soImageObject.splitHsl()

拆分为HSL三个图像

soImageObject.splitRgb()

拆分为RGB三个图像

soImageObject.splitSeed()

使用种子连通算法分割为多个图像。
参数指定最大返回图像数目,返回值为图像数组。

soImageObject.splitXyz()

拆分为XYZ三个图像

soImageObject.splitYiq()

拆分为YIQ三个图像

soImageObject.splitYuv()

拆分YUV三个图像

soImageObject.toClipBD()

图像复制到剪贴板

soImageGifFileObject 成员列表

soImageGifFileObject.close()

写入GIF文件结束标记,并关闭文件

soImageGifFileObject.count()

获取当前已写入的图像帧数

soImageGifFileObject.disposalMethod

定义默认的背景清除方法
Potoshop 动画帧右键菜单里「处理」「不处理」其实就是这里说的背景清除方法,
0、不定义清除方法
1、不清除背景,下一帧的内容显示在当前帧的内容上面,
2、恢复背景色,然后再显示下一帧的内容
3、恢复上一帧,然后再显示下一帧的内容

可以看这里的动画演示了解这个属性的作用

soImageGifFileObject.frameDelay

默认每帧延时,以0.01秒为单位,默认为0.1秒

soImageGifFileObject.transColor

指定默认透明色
如果为null表示不透明

soImageGifFileObject.write(图像,保留局部调色板,本帧延时,保留局部处理方法)

参数@1必须是 soImage 对象,
此函数会自动检测图像,图像无效则不写入,
其他参数为可选参数,不指定则使用默认值
保留局部调色板增大体积但是图像颜色更丰富,

如果图像位宽高于8位则会降至8位,
建议事先调用 decreaseBpp 函数降低位宽可获得更好的输出效果。

自动完成常量

_MIX_ADD=7
_MIX_AND=9
_MIX_AVG=0xC
_MIX_BLENDALPHA=4
_MIX_DEFAULT=0
_MIX_DSTCOPY=3
_MIX_MASK=1
_MIX_OR=0xB
_MIX_SCREEN=6
_MIX_SRCBLEND=5
_MIX_SRCCOPY=2
_MIX_SUB=8
_MIX_XOR=0xA

Markdown 格式