嵌入设备上显示界面的截取问题,请教图形处理高手
本人想从手机界面上截取图片下来。
现知道Buffer->LCD的用到的 图形数据,想将这块数据变成BMP(256色)格式显示出来。
我的程序如下。
说明: 因为不想配置文件信息头和图象描述信息块,
我就直接画了一副256色的BMP图,从里面截取了
文件信息头和图象描述信息块,总共长 46 + 1024
#define FILE_HEAD 46
#define COLOR_TABLE 1024
#define LCD_WIDTH 128
#define LCD_HEIGHT 160
//这个数组用来保存文件信息头和图象描述信息块
U8 ImageHead[FILE_HEAD + COLOR_TABLE];
void SaveCurrentScreen(unsigned char *dst)
{
//说明: gMainLCDBuff就是LCD上图形的buffer.
FILE *fp;
fp = fopen("currentScreen.bmp", "wb");
fwrite(dst, FILE_HEAD + COLOR_TABLE, 1, fp);
fwrite(gMainLCDBuff, LCD_HEIGHT*LCD_WIDTH *sizeof(int), 1, fp);
fclose(fp);
}
void MixSaveImage(void)
{
//test.bmp是一副已经画好的256色的Bmp图片,上面这段就是
//直接从里面读出文件信息头和图象描述信息块
FILE *fp;
fp = fopen("test.bmp", "rb");
fread(ImageHead, FILE_HEAD+COLOR_TABLE, 1, fp);
fclose(fp);
SaveCurrentScreen(ImageHead);
}
经过上面两个函数的处理,没有办法保存图片,保存下来的尽是一些乱七八糟的东西,
请教高手帮忙,谢谢。