# gdip.core 库模块帮助文档

## gdip 成员列表 <a id="gdip" href="#gdip">&#x23;</a>

### gdip.assert(/*请输入GDI+函数返回值*/) <a id="gdip.assert" href="#gdip.assert">&#x23;</a>
校验GDI+函数返回值  
如果返回值非零,则抛出错误信息  
否则返回该函数的所有输出参数

### gdip.assert2(/*请输入GDI+函数返回值*/) <a id="gdip.assert2" href="#gdip.assert2">&#x23;</a>
校验GDI+函数返回值  
如果返回值非零,则向上层调用函数抛出错误信息  
否则返回该函数的所有输出参数

### gdip.checkError(/*请输入GDI+函数返回值*/) <a id="gdip.checkError" href="#gdip.checkError">&#x23;</a>
如果有错误调用error函数抛出异常

### gdip.checkError(/*请输入GDI+函数返回值*/,2) <a id="gdip.checkError" href="#gdip.checkError">&#x23;</a>
如果有错误调用error函数抛出异常  
参数2指定抛出异常的调用级别  
2表示调用当前函数的函数

### gdip.close() <a id="gdip.close" href="#gdip.close">&#x23;</a>
关闭GDI+  
在程序退出时会自动调用此函数  
一般不需要显示调用此函数

### gdip.errMsg[] <a id="gdip.errMsg[]" href="#gdip.errMsg[]">&#x23;</a>
根据返回值取错误信息

### gdip.open() <a id="gdip.open" href="#gdip.open">&#x23;</a>
初始化GDI+  
导入gdip时会默认执行此函数

## ::POINTF 成员列表 <a id="::POINTF" href="#::POINTF">&#x23;</a>

### ::POINTF.array(...) <a id="::POINTF.array" href="#::POINTF.array">&#x23;</a>
创建包含 POINTF 结构体数组的结构体。  
可以用参数 @1 指定数组。  
如果参数 @1 i 不是数组则将所有参数合并为数组。  
数组中至少要指定一个坐标点，不能是空数组。  

数组中如果包含是是数值则每 2 个数值表示一个坐标点，  
返回 `{float points[]=[...] }` 格式的结构体。  
如果数组中包含的是结构体则每个结构体表示一个坐标点。  
返回 `{struct points[]=[...] }` 格式的结构体。  
对于 GDI+ 原生接口这两种不同写法的结构体的作用是等价的。  
第一个返回值为包含了坐标点数组的结构体，第 2 个返回值为坐标点数量。

## rectfObject 成员列表 <a id="rectfObject" href="#rectfObject">&#x23;</a>

### rectfObject.expand <a id="rectfObject.expand" href="#rectfObject.expand">&#x23;</a>
扩展或缩小右下角坐标

### rectfObject.expand() <a id="rectfObject.expand" href="#rectfObject.expand">&#x23;</a>
[返回对象:rectfObject](#rectfObject)

### rectfObject.expand(dx,dy) <a id="rectfObject.expand" href="#rectfObject.expand">&#x23;</a>
dx 指定正数扩展右边,负数缩小右边,  
dy 指定正数扩展底边,负数缩小底边  
左上角不变,  
返回自身

### rectfObject.getPos() <a id="rectfObject.getPos" href="#rectfObject.getPos">&#x23;</a>
此方法是 xywh 方法的别名。  
返回结构体的左上角坐标 x,y 以及宽度 width，高度 height 等4个值。  
::RECT,::RECTF 结构体都有这个同名函数，作用一样。

### rectfObject.height <a id="rectfObject.height" href="#rectfObject.height">&#x23;</a>
高

### rectfObject.inflate <a id="rectfObject.inflate" href="#rectfObject.inflate">&#x23;</a>
扩大区块并返回矩形区块自身

### rectfObject.inflate() <a id="rectfObject.inflate" href="#rectfObject.inflate">&#x23;</a>
[返回对象:rectfObject](#rectfObject)

### rectfObject.inflate(左右单位,上下单位) <a id="rectfObject.inflate" href="#rectfObject.inflate">&#x23;</a>
扩大区块并返回矩形区块自身  
忽略参数请传入0,不可省略  
上,下,左,右分别扩大指定的单位  
负数为缩小

### rectfObject.ltrb() <a id="rectfObject.ltrb" href="#rectfObject.ltrb">&#x23;</a>
返回结构体的 left,top,right,bottom 等 4 个值。  
::RECT,::RECTF 结构体都有这个同名函数，作用一样。

### rectfObject.move <a id="rectfObject.move" href="#rectfObject.move">&#x23;</a>
移动左上角坐标

### rectfObject.move() <a id="rectfObject.move" href="#rectfObject.move">&#x23;</a>
[返回对象:rectfObject](#rectfObject)

### rectfObject.move(dx,dy) <a id="rectfObject.move" href="#rectfObject.move">&#x23;</a>
使用参数指定的 x,y 坐标偏移量移动左上角坐标,  
正数向右下移动,负数向左上移动,  
右下角位置不变  
返回自身  
如果需要移动坐标且大小不变请改用offset函数  
移动到指定坐标而不是偏移量请改用setPos函数

### rectfObject.offset <a id="rectfObject.offset" href="#rectfObject.offset">&#x23;</a>
移动矩形框并返回自身

### rectfObject.offset() <a id="rectfObject.offset" href="#rectfObject.offset">&#x23;</a>
[返回对象:rectfObject](#rectfObject)

### rectfObject.offset(横偏移,纵偏移) <a id="rectfObject.offset" href="#rectfObject.offset">&#x23;</a>
移动矩形框并返回自身,矩形大小不变,  
左上移使用负坐标,右下移使用正坐标  
忽略参数请传入0,不可省略

### rectfObject.setPos <a id="rectfObject.setPos" href="#rectfObject.setPos">&#x23;</a>
重新调整坐标与大小，返回结构体自身。

### rectfObject.setPos() <a id="rectfObject.setPos" href="#rectfObject.setPos">&#x23;</a>
[返回对象:rectfObject](#rectfObject)

### rectfObject.setPos(x,y,cx,cy) <a id="rectfObject.setPos" href="#rectfObject.setPos">&#x23;</a>
移动到 x，y 指定的坐标，  
可选用 cx，cy 重新指定宽度和高度，  
所有参数可选，不指定则保持旧值。  
::RECT,::RECTF 结构体都有这个同名函数，作用一样。

### rectfObject.width <a id="rectfObject.width" href="#rectfObject.width">&#x23;</a>
宽

### rectfObject.x <a id="rectfObject.x" href="#rectfObject.x">&#x23;</a>
x坐标

### rectfObject.xywh() <a id="rectfObject.xywh" href="#rectfObject.xywh">&#x23;</a>
返回结构体的左上角坐标 x,y 以及宽度 width，高度 height 等4个值。  
::RECT,::RECTF 结构体都有这个同名函数，作用一样。

### rectfObject.y <a id="rectfObject.y" href="#rectfObject.y">&#x23;</a>
y坐标

### 全局常量

### ::Gdiplus <a id="::Gdiplus" href="#::Gdiplus">&#x23;</a>
[返回对象:dllModuleObject](https://www.aardio.com/zh-cn/docs/library-reference/raw/_.html#dllModuleObject)

### ::POINTF <a id="::POINTF" href="#::POINTF">&#x23;</a>
浮点格式坐标

### ::POINTF() <a id="::POINTF()" href="#::POINTF()">&#x23;</a>
[返回对象:pointObject](#pointObject)

### ::POINTF(x,y) <a id="::POINTF(x,y)" href="#::POINTF(x,y)">&#x23;</a>
浮点格式坐标

### ::RECTF <a id="::RECTF" href="#::RECTF">&#x23;</a>
创建表示浮点格式区块的结构体。  
由 GDI+ 基础支持库（gdip.core）加载。  
gdip.image, gdip.bitmap, gdip.graphics, plus 控件等都已经自动加载 gdip.core。  
::RECTF 使用 x,y,width,height 等 4 个数值字段存储左、上、宽、高位置。  
::RECTF 结构体通过重载操作符支持读写 left,top,right,bottom 字段。

### ::RECTF() <a id="::RECTF()" href="#::RECTF()">&#x23;</a>
[返回对象:rectfObject](#rectfObject)

### ::RECTF(rectObject) <a id="::RECTF(rectObject)" href="#::RECTF(rectObject)">&#x23;</a>
创建表示浮点格式区块的结构体。  
参数 rectObject 可以是其他 ::RECTF 或 ::RECT 结构体，  
或者直接包含 left,top,right,bottom 字段（可通过直接下标获取）的普通表，  
也可以指定支持 x,y,width,height 字段的任意对象（例如 .NET 的 System.Windows.Rect 对象）。  
ectObject 可通过重载操作符返回 x,y,width,height 字段，  

返回新创建的 ::RECTF 结构体。

### ::RECTF(x,y,width,height) <a id="::RECTF(x,y,width,height)" href="#::RECTF(x,y,width,height)">&#x23;</a>
创建表示浮点格式区块的结构体。  
可使用 4 个数值参数依次指定 x 坐标，y 坐标，宽度（width），高度（height）四个字段的初始值。   
所有参数都是可选参数，未指定的字段则默认设为 0。
