enum
{
_JPG=0,
_PNG=1,
_BMP16=2
};


typedef struct
{
uint32 width; //宽度
uint32 height; //高度
uint32 stride;
int32 format; //格式
uint32 flags; // 0 for now
void *ptr; //缓存
} BITMAPINFO;


/*
创建bitmap
参数:
width 图片宽度
height 图片高度
返回值:
-1 创建失败
>0 创建成功,返回bitmap句柄
*/
int createBitmap(int w,int h);

/*
读取一张图片
参数:
filename 文件名

返回值:
-1 读取失败
>0 读取成功,返回bitmap句柄
*/
int32 readBitmap(char *filename);

/*
从apk安装包assets目录读取图片。
参数:
filename 文件名

返回值:
-1 读取失败
>0 读取成功,返回bitmap句柄
*/
int32 readBitmapFromAssets(char *filename);


/*
裁剪b中(x,y,w,h)部分生成新的bitmap
这个函数是回调的安卓接口,当裁剪图片和原图片一样大,返回原图片,当裁剪图片是原图的一部分,重新创建一张图片。
参数:
b bitmap句柄
x 裁剪的x坐标
y 裁剪的y坐标
w 裁剪区域宽度
h 裁剪区域高度
返回值:
-1 失败
>0 裁剪成功,返回生成的bitmap句柄
*/
int32 clipBitmap(int32 b,int32 x,int32 y,int32 w,int32 h);

/*
将bitmap绘制到屏幕缓存上
参数:
b bitmap句柄
x 绘制到屏幕上的x坐标
y 绘制到屏幕上的y坐标

*/
void drawBitmap(int32 b,int32 x,int32 y);


将bitmap上(tx,ty,w,h)区域绘制到屏幕上
参数:
x 绘制到屏幕上的x坐标
y 绘制到屏幕上的y坐标
w 绘制宽度 h 绘制高度 tx 裁剪区域x坐标 ty 裁剪区域y坐标 bx by bw bh 裁剪区域

void drawBitmapFlip(int32 b,int x,int y,int w,int h,int tx,int ty);

将bitmap旋转绘制到屏幕上,并可指定绘制的透明度
参数:
b bitmap句柄
scrx,scry 绘制到屏幕上的中心位置
bx, by 图片旋转中心(相对于图片的左上角坐标)
r 旋转角度(顺时针)
alpha 绘制的不透明度(0~255)

void drawBitmapRotate(int32 b,int scrx,int scry, int bx, int by, int r, int color);


设置显示区域,即设置裁剪区。只对区域内的绘制生效。(drect dline dpoint函数将不起作用)
参数:
x 区域x坐标
y 区域y坐标
w 宽度
h 高度
返回值:
TRUE 成功 FALSE 失败
int clipRect(int x,int y,int w,int h);



绘制一个矩形
参数:
x,y 矩形坐标
w,h, 矩形宽高
color 矩形颜色(ARGB颜色值)
void drawRect(int x,int y,int w,int h,int32 color);

绘制一个圆
参数:
x,y 圆的坐标
r 圆的半径
color 颜色值(ARGB格式)
void drawCir(int x,int y,int r,int32 color);

/*
将bitmap绘制到另一个bitmap上

将buf中的bitmap图片,从(sx, sy)开始的
宽高为w, h的区域,绘制到图片di从(x, y)开始的地方。

参数:
di 目标bitmap句柄
buf 指向保存的bitmap
w,h 欲绘制区域的宽高
x,y 欲绘制区域在图片di的起始位置
sx,sy 欲绘制区域在图片buf的起始位置

返回:
0 成功
-1 失败
*/

int32 drawBitmapOld(int di, int buf, int32 x, int32 y, int32 w, int32 h, int32 sx, int32 sy);

/*
清理bitmap,释放内存
参数:
b bitmap句柄

返回值:
0 成功
-1 失败
*/
int32 bitmapFree(int32 b);


获取bitmap信息到BITMAPINFO结构体
返回值:
0 成功
-1 失败
int bitmapGetInfo(int b,BITMAPINFO *info);


/*
将bitmap保存为指定格式
参数:
b bitmap句柄
filename 保存的文件名
type 保存图片的类型,取值如下:
enum
{
_JPG=0, //jpg格式
_PNG=1, //png格式
_BMP16=2 //bmp格式(16位图)
};
load 若保存的是jpg格式,将指定jpg的压缩质量,值越大质量越好
返回值:
0 保存成功
-1 保存失败
*/
int32 saveBitmap(int32 b,char* filename, int type, int load);