# gdip.bitmap 库模块帮助文档

## gdip 成员列表 <a id="gdip" href="#gdip">&#x23;</a>

### gdip.BitmapData() <a id="gdip.BitmapData" href="#gdip.BitmapData">&#x23;</a>
[返回对象:gdiBitmapDataObject](#gdiBitmapDataObject)

### gdip.BitmapGetPixel <a id="gdip.BitmapGetPixel" href="#gdip.BitmapGetPixel">&#x23;</a>
`$.api("GdipBitmapGetPixel","int(POINTER Bitmap,int x,int y,int& color)")`

### gdip.BitmapLockBits <a id="gdip.BitmapLockBits" href="#gdip.BitmapLockBits">&#x23;</a>
`$.api("GdipBitmapLockBits","int(POINTER Bitmap,struct rect,int flags,int pixelFormat,struct& lockedBitmapData)")`

### gdip.BitmapSetPixel <a id="gdip.BitmapSetPixel" href="#gdip.BitmapSetPixel">&#x23;</a>
`$.api("GdipBitmapSetPixel","int(POINTER Bitmap,int x,int y,int color)")`

### gdip.BitmapSetResolution <a id="gdip.BitmapSetResolution" href="#gdip.BitmapSetResolution">&#x23;</a>
`$.api("GdipBitmapSetResolution","int(POINTER Bitmap,float xdpi,float ydpi)")`

### gdip.BitmapUnlockBits <a id="gdip.BitmapUnlockBits" href="#gdip.BitmapUnlockBits">&#x23;</a>
`$.api("GdipBitmapUnlockBits","int(POINTER Bitmap,struct  lockedBitmapData)")`

### gdip.CloneBitmapArea <a id="gdip.CloneBitmapArea" href="#gdip.CloneBitmapArea">&#x23;</a>
`$.api("GdipCloneBitmapArea","int(float x,float y,float cx,float cy,int pixFormat,ptr bmp,ptr& bmp2)")`

### gdip.CreateBitmapFromFile <a id="gdip.CreateBitmapFromFile" href="#gdip.CreateBitmapFromFile">&#x23;</a>
`$.api("GdipCreateBitmapFromFile","int(string FileName,pointer& Bitmap)")`

### gdip.CreateBitmapFromGraphics <a id="gdip.CreateBitmapFromGraphics" href="#gdip.CreateBitmapFromGraphics">&#x23;</a>
`$.api("GdipCreateBitmapFromGraphics","int(int width,int height,pointer Graphics,pointer& Bitmap)")`

### gdip.CreateBitmapFromHBITMAP <a id="gdip.CreateBitmapFromHBITMAP" href="#gdip.CreateBitmapFromHBITMAP">&#x23;</a>
`$.api("GdipCreateBitmapFromHBITMAP","int(POINTER hbm,int hpal,pointer& Bitmap)")`

### gdip.CreateBitmapFromHICON <a id="gdip.CreateBitmapFromHICON" href="#gdip.CreateBitmapFromHICON">&#x23;</a>
`$.api("GdipCreateBitmapFromHICON","int(POINTER hicon,pointer& Bitmap)")`

### gdip.CreateBitmapFromScan0 <a id="gdip.CreateBitmapFromScan0" href="#gdip.CreateBitmapFromScan0">&#x23;</a>
`$.api("GdipCreateBitmapFromScan0","int(int width,int height,int stride,int pixelFormat,pointer scan0,pointer& Bitmap)")`

### gdip.CreateBitmapFromStream <a id="gdip.CreateBitmapFromStream" href="#gdip.CreateBitmapFromStream">&#x23;</a>
`$.api("GdipCreateBitmapFromStream","int(POINTER stream,pointer& Bitmap)")`

### gdip.CreateHBITMAPFromBitmap <a id="gdip.CreateHBITMAPFromBitmap" href="#gdip.CreateHBITMAPFromBitmap">&#x23;</a>
`$.api("GdipCreateHBITMAPFromBitmap","int(POINTER Bitmap,pointer& hbmReturn,int background)")`

### gdip.bitmap() <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
[返回对象:gdipbitmapObject](#gdipbitmapObject)

### gdip.bitmap(graphics,100,100) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
从参数 @graphics 指定的 gdip.graphics 对象创建 GDI+ 位图副本。  
对位图的修改不会影响原来的graphics对象  
参数(graphics对象,宽度,高度)

### gdip.bitmap(hBitmap) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
从参数 @hBitmap 指定的位图句柄创建  gdip.bitmap 对象。  
不会销毁传入的位图,须自行释放

### gdip.bitmap(hIcon,1/*_IMAGE_ICON*/) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
从参数 @hIcon 指定的图标句柄创建 gdip.bitmap 对象。  
不会销毁传入的位图,须自行释放

### gdip.bitmap(imageOrBitmap) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
从参数 @imageOrBitmap 指定的 gdip.image 或 gdip.bitmap 对象创建新的 GDI+ 位图对象

### gdip.bitmap(pathOrData) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
自参数 @pathOrData 指定的图像路径或数据（支持 buffer 类型）创建 GDI+ 位图对象。  
如果事先导入标准库 inet.http,这里也可以直接传入图像网址。

### gdip.bitmap(picture) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
从参数 @picture 指定的 com.pictrue 对象创建 GDI+ 位图对象

### gdip.bitmap(width,height) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
创建指定大小空位图。  
参数 @width,@height 指定宽高。

### gdip.bitmap(width,height,pixelFormat,scan0,stride) <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>
自内存指针创建指定大小位图。  
- 参数 @width,@height 指定宽高  
- 参数 @pixelFormat 像素格式使用 _GdipPixelFormat 前缀的常量表示。  
参数 @scan0 指定内存指针  
- 参数 @stride 指定行扫描宽度。  
一般指像素所占字节数乘以图像宽度，必须对齐为 4 字节的整数倍。  

gdip.bitmap 对象会重用而不是复制 scan0 指向的内存。  
如果 scan0 是字符串或 buffer 则可以安全地使用原始位图以避免复制操作。  
这是因为当前位图会保持对 scan0 的引用以避免内存被提前释放。  
但如果 scan0 是指针类型则调用者必须保证使用此位图时 scan0 指向的内存有效，  
或者调用返回对象的 clone 方法复制位图并丢弃引用 scan0 的位图。

### gdip.createBitmapFromHandle( ,_IMAGE类型) <a id="gdip.createBitmapFromHandle" href="#gdip.createBitmapFromHandle">&#x23;</a>
从句柄创建位图对象

### gdip.loadBitmapFromString(请输入图片数据) <a id="gdip.loadBitmapFromString" href="#gdip.loadBitmapFromString">&#x23;</a>
从内存字符串直接创建位图

### gdip.loadCachedBitmap <a id="gdip.loadCachedBitmap" href="#gdip.loadCachedBitmap">&#x23;</a>
创建并返回图像,如果不是动画则缓存该位图

### gdip.loadCachedBitmap(图像路径或数组,缓存键名) <a id="gdip.loadCachedBitmap" href="#gdip.loadCachedBitmap">&#x23;</a>
缓存名为可选参数,默认以路径为缓存名  
如果参数@1是图像数据则可以使用参数@2指定缓存名,  

返回位图对象,  
如果缓存键名明确指定为false，  
则不使用缓存直接创建并返回位图

## gdip.bitmap 成员列表 <a id="gdip.bitmap" href="#gdip.bitmap">&#x23;</a>

位图对象

创建位图对象  
失败返回null,以及错误信息

### gdip.bitmap.is() <a id="gdip.bitmap.is" href="#gdip.bitmap.is">&#x23;</a>
参数 @1 是否 gdip.bitmap 对象

## 全局对象 成员列表 <a id="global" href="#global">&#x23;</a>

### loadCachedBitmap() <a id="loadCachedBitmap()" href="#loadCachedBitmap()">&#x23;</a>
[返回对象:gdipbitmapObject](#gdipbitmapObject)

## gdiBitmapDataObject 成员列表 <a id="gdiBitmapDataObject" href="#gdiBitmapDataObject">&#x23;</a>

### gdiBitmapDataObject.bits.rows.bytes[] <a id="gdiBitmapDataObject.bits.rows.bytes[]" href="#gdiBitmapDataObject.bits.rows.bytes[]">&#x23;</a>
字节数组（ table 类型 ）。  
32 位 RGB ,每像数字节顺序为Blue,Green,Red,Alpha 。  
24 位 RGB ,每像数字节顺序为 Blue,Green,Red

### gdiBitmapDataObject.bits.rows.pixels[] <a id="gdiBitmapDataObject.bits.rows.pixels[]" href="#gdiBitmapDataObject.bits.rows.pixels[]">&#x23;</a>
像素数组（ table 类型 ）,数组元素的值为 32 位整数。  
使用 lockData32 获取 32 位图数据时才有这个字段。

### gdiBitmapDataObject.bits.rows[] <a id="gdiBitmapDataObject.bits.rows[]" href="#gdiBitmapDataObject.bits.rows[]">&#x23;</a>
像素行数组

### gdiBitmapDataObject.height <a id="gdiBitmapDataObject.height" href="#gdiBitmapDataObject.height">&#x23;</a>
高度

### gdiBitmapDataObject.pixelFormat <a id="gdiBitmapDataObject.pixelFormat" href="#gdiBitmapDataObject.pixelFormat">&#x23;</a>
像素格式，  
使用 _GdipPixelFormat 前缀的常量表示

### gdiBitmapDataObject.scan0 <a id="gdiBitmapDataObject.scan0" href="#gdiBitmapDataObject.scan0">&#x23;</a>
原生类型为指针。  
存储数据为缓冲区（ buffer ）。

### gdiBitmapDataObject.stride <a id="gdiBitmapDataObject.stride" href="#gdiBitmapDataObject.stride">&#x23;</a>
每行字节宽度，一般指像素所占字节数乘以图像宽度。  
该宽度总是对齐为4字节的整数倍,可能比像素所占的字节宽度大。  
该值如果为负数表示 scan0 指向最后一行

### gdiBitmapDataObject.width <a id="gdiBitmapDataObject.width" href="#gdiBitmapDataObject.width">&#x23;</a>
宽度

## gdip.BitmapData 成员列表 <a id="gdip.BitmapData" href="#gdip.BitmapData">&#x23;</a>

```aardio
class {  
	int width;
	int height;
	int stride;
	int pixelFormat;
	pointer scan0;
	int reserved;  
	@_meta;
}
```

### gdip.BitmapData._meta <a id="gdip.BitmapData._meta" href="#gdip.BitmapData._meta">&#x23;</a>

```aardio
{
	_get = function(k){
		if(type(k)==="string") return owner[[ ..string.replace(k,"^[A-Z]",..string.lower) ]]; 
	} 
}
```

## gdipbitmapObject 成员列表 <a id="gdipbitmapObject" href="#gdipbitmapObject">&#x23;</a>

### gdipbitmapObject.activeFrame <a id="gdipbitmapObject.activeFrame" href="#gdipbitmapObject.activeFrame">&#x23;</a>
当前帧索引  
修改该属性请使用SelectActiveFrame函数

### gdipbitmapObject.clone <a id="gdipbitmapObject.clone" href="#gdipbitmapObject.clone">&#x23;</a>
复制位图

### gdipbitmapObject.clone() <a id="gdipbitmapObject.clone" href="#gdipbitmapObject.clone">&#x23;</a>
[返回对象:gdipbitmapObject](#gdipbitmapObject)

### gdipbitmapObject.clone(x,y,cx,cy,pixelFormat) <a id="gdipbitmapObject.clone" href="#gdipbitmapObject.clone">&#x23;</a>
x,y指定复制区域起始坐标  
cx,cy指定复制区域大小,所有参数可选,默认复制全图  
像素格式默认为_GdipPixelFormat32bppARGB

### gdipbitmapObject.copy() <a id="gdipbitmapObject.copy" href="#gdipbitmapObject.copy">&#x23;</a>
复制位图  
可选在参数中指定gdip.imageAttributes对象用于控制显示属性

[返回对象:gdipbitmapObject](#gdipbitmapObject)

### gdipbitmapObject.copyHandle("icon") <a id="gdipbitmapObject.copyHandle" href="#gdipbitmapObject.copyHandle">&#x23;</a>
创建并返回 HICON 图标句柄。  
调用者负责释放返回的位图句柄。

### gdipbitmapObject.copyHandle(宽度,高度) <a id="gdipbitmapObject.copyHandle" href="#gdipbitmapObject.copyHandle">&#x23;</a>
创建并返回 HBITMAP 位图句柄。  
可选指定宽度、高度参数。  
调用者负责释放返回的位图句柄。

### gdipbitmapObject.createAnimation <a id="gdipbitmapObject.createAnimation" href="#gdipbitmapObject.createAnimation">&#x23;</a>
如果图像是一个动画,创建定时器执行动画  
注意每个图像同时只能在一个窗口上创建动画  
创建动画前自动删除之前创建的动画定时器  
如果图像不是动画,此函数不执行任何操作  
成功返回定时器ID

### gdipbitmapObject.createAnimation(窗口对象,回调函数) <a id="gdipbitmapObject.createAnimation" href="#gdipbitmapObject.createAnimation">&#x23;</a>
在窗口上创建定时器,  
每帧动画触发回调函数,  
回调函数owner参数被设为参数@1指定的窗口对象  

如果不指定控件,则默认指定为上次创建动画的控件,  
如果不指定回调函数,则默认指定为控件的redrawTransparent函数

### gdipbitmapObject.delete() <a id="gdipbitmapObject.delete" href="#gdipbitmapObject.delete">&#x23;</a>
释放图像  
此对象支持自动释放,不必手工调用此函数

### gdipbitmapObject.eachFrame <a id="gdipbitmapObject.eachFrame" href="#gdipbitmapObject.eachFrame">&#x23;</a>
如果图像支持动画，则返回一个帧迭代器。  
否则此函数返回 null。

### gdipbitmapObject.eachFrame(loopCount) <a id="gdipbitmapObject.eachFrame" href="#gdipbitmapObject.eachFrame">&#x23;</a>
遍历动画帧。  
每次调用帧迭代器切换到下一帧并返回当前帧所需延时，帧索引。  
动画完成迭代器返回 null 。  
可选用 @loopCount 参数指定循环所有帧的次数，0 为无限循环。  
不指定参数则获取图像默认循环次数。  

示例：  
```aardio  
for delay,frame in bmp.eachFrame(1) {  
    bmp.save("/"+frame+".gif");  
}  
```

### gdipbitmapObject.eachProperty <a id="gdipbitmapObject.eachProperty" href="#gdipbitmapObject.eachProperty">&#x23;</a>

```aardio
for( id,propertyItem in gdipbitmapObject.eachProperty() ){
	 propertyItem.
}
```

### gdipbitmapObject.eachProperty() <a id="gdipbitmapObject.eachProperty" href="#gdipbitmapObject.eachProperty">&#x23;</a>
[返回对象:gdipExifItemObject](#gdipExifItemObject)

### gdipbitmapObject.expandBitmap <a id="gdipbitmapObject.expandBitmap" href="#gdipbitmapObject.expandBitmap">&#x23;</a>
使用九宫格绘图创建新的位图对象,  
九宫格切图后边角四格固定,中间五格拉伸。  
使用此函数需要先导入 gdip.graphics。

### gdipbitmapObject.expandBitmap() <a id="gdipbitmapObject.expandBitmap" href="#gdipbitmapObject.expandBitmap">&#x23;</a>
[返回对象:gdipbitmapObject](#gdipbitmapObject)

### gdipbitmapObject.expandBitmap(输出宽,输出高,上,右,下,左) <a id="gdipbitmapObject.expandBitmap" href="#gdipbitmapObject.expandBitmap">&#x23;</a>
所有参数为数值,不可省略  
返回新的位图对象

### gdipbitmapObject.frameDimension <a id="gdipbitmapObject.frameDimension" href="#gdipbitmapObject.frameDimension">&#x23;</a>
当前分辨率GUID

### gdipbitmapObject.getFrameDelays() <a id="gdipbitmapObject.getFrameDelays" href="#gdipbitmapObject.getFrameDelays">&#x23;</a>
返回多帧图像每帧延时数值组成的数组,  
延时单位为厘秒,即0.01秒

### gdipbitmapObject.getFrameDimensionsList() <a id="gdipbitmapObject.getFrameDimensionsList" href="#gdipbitmapObject.getFrameDimensionsList">&#x23;</a>
图像帧分辨率列表  
该值是GUID数组

### gdipbitmapObject.getGraphics() <a id="gdipbitmapObject.getGraphics" href="#gdipbitmapObject.getGraphics">&#x23;</a>
从图像创建画布  

[返回对象:gdipgraphicsObject](#gdipgraphicsObject)

### gdipbitmapObject.getLoopCount() <a id="gdipbitmapObject.getLoopCount" href="#gdipbitmapObject.getLoopCount">&#x23;</a>
动画循环次数  
0为一直循环

### gdipbitmapObject.getPixel(x,y) <a id="gdipbitmapObject.getPixel" href="#gdipbitmapObject.getPixel">&#x23;</a>
读取位图指定坐标(x,y)的ARGB颜色值

### gdipbitmapObject.getPixelFormat() <a id="gdipbitmapObject.getPixelFormat" href="#gdipbitmapObject.getPixelFormat">&#x23;</a>
返回像素格式

### gdipbitmapObject.getPropertyIds() <a id="gdipbitmapObject.getPropertyIds" href="#gdipbitmapObject.getPropertyIds">&#x23;</a>
返回所有属性ID数组

### gdipbitmapObject.getPropertyItem() <a id="gdipbitmapObject.getPropertyItem" href="#gdipbitmapObject.getPropertyItem">&#x23;</a>
[返回对象:gdipExifItemObject](#gdipExifItemObject)

### gdipbitmapObject.getPropertyItem(属性ID) <a id="gdipbitmapObject.getPropertyItem" href="#gdipbitmapObject.getPropertyItem">&#x23;</a>
返回字段

### gdipbitmapObject.getResolution() <a id="gdipbitmapObject.getResolution" href="#gdipbitmapObject.getResolution">&#x23;</a>
返回分辨率xdpi,ydpi

### gdipbitmapObject.getThumbnail() <a id="gdipbitmapObject.getThumbnail" href="#gdipbitmapObject.getThumbnail">&#x23;</a>
[返回对象:gdipbitmapObject](#gdipbitmapObject)

[返回对象:gdipimageObject](https://www.aardio.com/zh-cn/doc/library-reference/gdip/image.html#gdipimageObject)

### gdipbitmapObject.getThumbnail(宽度,高度,是否保持比例) <a id="gdipbitmapObject.getThumbnail" href="#gdipbitmapObject.getThumbnail">&#x23;</a>
获取缩略图，返回 gdip.bitmap 对象。  
此函数依赖 gdip.graphics 库（plus 控件已自动导入）。  
参数宽度,高度指定新的像素大小,也可以用小于 1 大于 0 的小数指定缩放百分比。  
不指定高度或为 null 值时则参数 @1 同时指定宽高。  

仅返回 gdip.image 对象的 getThumbnailImage 速度更快且不依赖 gdip.graphics。

### gdipbitmapObject.getThumbnailImage(宽度,高度,是否保持比例) <a id="gdipbitmapObject.getThumbnailImage" href="#gdipbitmapObject.getThumbnailImage">&#x23;</a>
获取缩略图，返回 gdip.image 对象。  
参数宽度,高度指定新的像素大小,也可以用小于 1 大于 0 的小数指定缩放百分比。  
不指定高度或为 null 值时则参数 @1 同时指定宽高。  

将图像缩到很小（例如 0.02）后放大可实现模糊效果（blur effect）。  
plus 控件的 expand,scale,stretch 等图像模式支持自动放大

### gdipbitmapObject.height <a id="gdipbitmapObject.height" href="#gdipbitmapObject.height">&#x23;</a>
高度

### gdipbitmapObject.isCached() <a id="gdipbitmapObject.isCached" href="#gdipbitmapObject.isCached">&#x23;</a>
该对象已被缓存

### gdipbitmapObject.isPlaying() <a id="gdipbitmapObject.isPlaying" href="#gdipbitmapObject.isPlaying">&#x23;</a>
是否正在播放动画

### gdipbitmapObject.isValid() <a id="gdipbitmapObject.isValid" href="#gdipbitmapObject.isValid">&#x23;</a>
图像是否有效  
delete 函数释放以后返回false

### gdipbitmapObject.lockData <a id="gdipbitmapObject.lockData" href="#gdipbitmapObject.lockData">&#x23;</a>
锁定图像内存  
返回gdip.BitmapData结构体  
与lockMemory不同的是使用bits数组存储图像数据

### gdipbitmapObject.lockData() <a id="gdipbitmapObject.lockData" href="#gdipbitmapObject.lockData">&#x23;</a>
[返回对象:gdiBitmapDataObject](#gdiBitmapDataObject)

### gdipbitmapObject.lockData(rect,_GdipPixelFormat32bppARGB,flags) <a id="gdipbitmapObject.lockData" href="#gdipbitmapObject.lockData">&#x23;</a>
所有参数可选，  
默认使用图像的像素格式。  
@rect 参数可用 ::RECT 结构体指定区块位置

### gdipbitmapObject.lockData32 <a id="gdipbitmapObject.lockData32" href="#gdipbitmapObject.lockData32">&#x23;</a>
如果返回32位像素格式  
则bits.rows[].pixels[]像素数组非空  
否则返回bits.rows[].bytes字节数组

### gdipbitmapObject.lockData32() <a id="gdipbitmapObject.lockData32" href="#gdipbitmapObject.lockData32">&#x23;</a>
[返回对象:gdiBitmapDataObject](#gdiBitmapDataObject)

### gdipbitmapObject.lockData32(rect,_GdipPixelFormat32bppARGB,flags) <a id="gdipbitmapObject.lockData32" href="#gdipbitmapObject.lockData32">&#x23;</a>
所有参数可选，  
默认使用_GdipPixelFormat32bppARGB像素格式获取数据。  
@rect 参数可用 ::RECT 结构体指定区块位置

### gdipbitmapObject.lockMemory <a id="gdipbitmapObject.lockMemory" href="#gdipbitmapObject.lockMemory">&#x23;</a>
锁定图像内存  
返回gdip.BitmapData结构体

### gdipbitmapObject.lockMemory() <a id="gdipbitmapObject.lockMemory" href="#gdipbitmapObject.lockMemory">&#x23;</a>
[返回对象:gdiBitmapDataObject](#gdiBitmapDataObject)

### gdipbitmapObject.lockMemory(rect,_GdipPixelFormat32bppARGB,flags) <a id="gdipbitmapObject.lockMemory" href="#gdipbitmapObject.lockMemory">&#x23;</a>
所有参数可选，  
默认使用图像的像素格式。  
@rect 参数可用 ::RECT 结构体指定区块位置

### gdipbitmapObject.origHeight <a id="gdipbitmapObject.origHeight" href="#gdipbitmapObject.origHeight">&#x23;</a>
原始高度，  
对于一个 gdip.bitmap 对象会一直缓存第一次读取的值

### gdipbitmapObject.origWidth <a id="gdipbitmapObject.origWidth" href="#gdipbitmapObject.origWidth">&#x23;</a>
原始宽度，  
对于一个 gdip.bitmap 对象会一直缓存第一次读取的值

### gdipbitmapObject.removePropertyItem(属性ID) <a id="gdipbitmapObject.removePropertyItem" href="#gdipbitmapObject.removePropertyItem">&#x23;</a>
移除字段

### gdipbitmapObject.resize <a id="gdipbitmapObject.resize" href="#gdipbitmapObject.resize">&#x23;</a>
缩放位图返回新的图象。  
此函数依赖 gdip.graphics 库（plus 控件已自动导入）。

### gdipbitmapObject.resize() <a id="gdipbitmapObject.resize" href="#gdipbitmapObject.resize">&#x23;</a>
[返回对象:gdipbitmapObject](#gdipbitmapObject)

### gdipbitmapObject.resize(宽,高,模式,上,右,下,左) <a id="gdipbitmapObject.resize" href="#gdipbitmapObject.resize">&#x23;</a>
除宽，高以外，其他所有参数为可选参数，支持模式 scale,auto,expand,stretch,center,tile,repeat-x,repeat-y  
模式默认为 scale，关于模式请参考 plus 控件背景模式说明，  
auto 模式指图像超过绘图区则居中，否则缩放。  
此函数不检查参数正确性，调用者有责任保证参数正确  
可选使用参数@8指定 gdip.imageAttributes 对象设置显示属性  
tile，repeat-x，repeat-y 三种模式忽略显示属性。  
函数返回位图对象。

### gdipbitmapObject.rotateFlip(_GdipRotate指定翻转选项) <a id="gdipbitmapObject.rotateFlip" href="#gdipbitmapObject.rotateFlip">&#x23;</a>
翻转图片

### gdipbitmapObject.save("字符串参数") <a id="gdipbitmapObject.save" href="#gdipbitmapObject.save">&#x23;</a>
保存图像  
使用参数指定的文件路径或加载图片时的路径  
根据后缀名自动设定格式,  
可选在参数@3使用gdip.encoder.parameter数组指定保存参数

### gdipbitmapObject.save("字符串参数",80) <a id="gdipbitmapObject.save" href="#gdipbitmapObject.save">&#x23;</a>
保存图像  
使用参数指定的文件路径或加载图片时的路径  
根据后缀名自动设定格式  
jpg文件可使用第二个参数指定图像质量,  
可选在参数@3使用 gdip.encoder.parameter 数组指定保存参数

### gdipbitmapObject.saveAdd() <a id="gdipbitmapObject.saveAdd" href="#gdipbitmapObject.saveAdd">&#x23;</a>
添加当前图像到多帧图像

### gdipbitmapObject.saveAdd(图像) <a id="gdipbitmapObject.saveAdd" href="#gdipbitmapObject.saveAdd">&#x23;</a>
添加其他 gdip.image 或 gdip.bitmap 对象到多帧图像,  
可选使用参数2指定saveFlag，可选在参数@3使用gdip.encoder.parameter数组指定保存参数

### gdipbitmapObject.saveAdd(图像路径) <a id="gdipbitmapObject.saveAdd" href="#gdipbitmapObject.saveAdd">&#x23;</a>
创建多帧图像,参数指定保存路径,  
使用saveAdd添加帧，添加帧参数@1不能指定路径,  
添加所有帧以后调用saveFlush函数即可

### gdipbitmapObject.saveToBuffer(后缀名,输出质量) <a id="gdipbitmapObject.saveToBuffer" href="#gdipbitmapObject.saveToBuffer">&#x23;</a>
保存图像到 buffer，返回 buffer,  
后缀名默认为"*.jpg",质量默认为100,  
可选在参数@3使用gdip.encoder.parameter数组指定保存参数

### gdipbitmapObject.saveToIcon <a id="gdipbitmapObject.saveToIcon" href="#gdipbitmapObject.saveToIcon">&#x23;</a>
保存图像到 ico 文件。  
使用此函数必须先导入 gdip.graphics 。

### gdipbitmapObject.saveToIcon(size,path,mode...) <a id="gdipbitmapObject.saveToIcon" href="#gdipbitmapObject.saveToIcon">&#x23;</a>
保存到 ico 文件。  
size 指定图标大小  
参数 @2 如指定路径则保存到文件，成功返回 true。  
不指定参数则返回包含 ico 数据的 buffer。  
其他可选参数传给 resize 函数，mode 默认为 scale，也就是保持比例缩放。

### gdipbitmapObject.saveToStream <a id="gdipbitmapObject.saveToStream" href="#gdipbitmapObject.saveToStream">&#x23;</a>
保存到内存流对象  
该函数成功返回值为流对象

### gdipbitmapObject.saveToStream() <a id="gdipbitmapObject.saveToStream" href="#gdipbitmapObject.saveToStream">&#x23;</a>
[返回对象:fsysStreamObject](https://www.aardio.com/zh-cn/doc/library-reference/fsys/stream.html#fsysStreamObject)

### gdipbitmapObject.saveToStream(流对象,后缀名,输出质量) <a id="gdipbitmapObject.saveToStream" href="#gdipbitmapObject.saveToStream">&#x23;</a>
流对象请使用 fsys.stream 创建  
后缀名默认为"*.jpg",质量默认为100,  
可选在参数@4使用gdip.encoder.parameter数组指定保存参数

### gdipbitmapObject.selectActiveFrame(帧序号) <a id="gdipbitmapObject.selectActiveFrame" href="#gdipbitmapObject.selectActiveFrame">&#x23;</a>
设置当前动画帧

### gdipbitmapObject.setFrameDelays() <a id="gdipbitmapObject.setFrameDelays" href="#gdipbitmapObject.setFrameDelays">&#x23;</a>
修改多帧图像每帧延时数值  
参数必须是由数值组成的非空数组,  
延时单位为厘秒,即0.01秒  
必须在调用saveAdd以前设置

### gdipbitmapObject.setPixel(x,y,argb) <a id="gdipbitmapObject.setPixel" href="#gdipbitmapObject.setPixel">&#x23;</a>
设定位图指定坐标(x,y)的ARGB颜色值

### gdipbitmapObject.setPropertyItem(字段结构体) <a id="gdipbitmapObject.setPropertyItem" href="#gdipbitmapObject.setPropertyItem">&#x23;</a>
修改字段

### gdipbitmapObject.setResolution(xdpi,ydpi) <a id="gdipbitmapObject.setResolution" href="#gdipbitmapObject.setResolution">&#x23;</a>
设置分辨率  
注意只能用来设置新建位图

### gdipbitmapObject.split <a id="gdipbitmapObject.split" href="#gdipbitmapObject.split">&#x23;</a>
将图片按指定的行数列数平均拆分为小图片

### gdipbitmapObject.split().map(命名表) <a id="gdipbitmapObject.split().map" href="#gdipbitmapObject.split().map">&#x23;</a>

```aardio
gdipbitmapObject.split().map(  
	default = 1;  
	hover = 2;  
	active = 3;/*返回一个新表  
键保持与参数相同,值自动设置为指定位置的图像*/  
)
```

### gdipbitmapObject.split(列数,行数,上,右,下,左) <a id="gdipbitmapObject.split" href="#gdipbitmapObject.split">&#x23;</a>
将图片按指定的行数列数平均拆分为小图片  
可选指定小图片的上、右、下、左边距  
返回一维数组

### gdipbitmapObject.stopAnimation() <a id="gdipbitmapObject.stopAnimation" href="#gdipbitmapObject.stopAnimation">&#x23;</a>
如果此图像已运行动画，则停止动画

### gdipbitmapObject.totalFrames <a id="gdipbitmapObject.totalFrames" href="#gdipbitmapObject.totalFrames">&#x23;</a>
动画帧总数  
不是动画返回1

### gdipbitmapObject.unlockData(bmpData) <a id="gdipbitmapObject.unlockData" href="#gdipbitmapObject.unlockData">&#x23;</a>
解锁图像内存  
参数必须是lockData,lockData32函数锁定返回的gdip.BitmapData结构体

### gdipbitmapObject.unlockMemory(bmpData) <a id="gdipbitmapObject.unlockMemory" href="#gdipbitmapObject.unlockMemory">&#x23;</a>
解锁图像内存  
参数必须是lockMemory函数锁定返回的gdip.BitmapData结构体

### gdipbitmapObject.width <a id="gdipbitmapObject.width" href="#gdipbitmapObject.width">&#x23;</a>
宽度
