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