stm32 LCD截屏存 24bmp图
来源:互联网 发布:苹果平板淘宝怎么横屏 编辑:程序博客网 时间:2024/05/22 06:34
1, 设置LCD光标,
2 ,写入LCD读写数据命令(0x22或0x32),读取返回的16位RGB值,
3,判断所读取值是RGB或BGR统一转换成RGB565,
4,24位bmp存储格式为B,G,R,(。。。)此处BGR565的数据 是高位对齐,如 原来 B=0x35 在此外则必须 B=(0X32)<<3;其他同理
5,读取的X,Y坐标应从最左下角逐行往上开始读取,举个例子:
LCD 240*320, 宽为 240,高为 320; 以宽为 x 轴,以高为y轴, 最左下角坐标为(0,320)==在计算机都是从0开始所以此处坐标为(0,319)
for(y = 319;y != 0xffff;y --) { for(x = 0;x < 240;x ++) { RGB= LCD_ReadPoint(x,y); //下面可以把RGB数据进行相应处理 } }此处0xffff 是因为定义的y为无符号类型,
6。54个字节的BMP结构部分定义
typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits;} BITMAPFILEHEADER;typedef struct tagBITMAPINFOHEADER{DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant;} BITMAPINFOHEADER;
SaveBmp(const char* bmpName,unsigned char *imgBuf,int width,int height,int biBitCount) { BITMAPFILEHEADER fileHead; FILE *fp; BITMAPINFOHEADER head; int lineByte; if(!imgBuf)//imgBuf 待存盘的位图数据 return 0;lineByte = (width * biBitCount/8+3)/4*4;fp = fopen(bmpName,"wb");if(fp == 0) return 0;fileHead.bfType= 0x4d42;fileHead.bfSize = sizeof(BITMAPFILEHEADER)+sizeof(BITMAPINFOHEADER)+ lineByte *height;fileHead.bfReserved1 = 0;fileHead.bfReserved2 = 0;fileHead.bfOffBits = 54;fwrite(&fileHead,sizeof(BITMAPFILEHEADER),1,fp);head.biBitCount = biBitCount;head.biClrImportant = 0;head.biClrUsed = 0;head.biCompression = 0;head.biHeight = height;head.biPlanes =1;head.biSize = 40;head.biSizeImage = lineByte *height;head.biWidth = width;head.biXPelsPerMeter = 0;head.biYPelsPerMeter = 0;fwrite(&head,sizeof(BITMAPINFOHEADER),1,fp);fwrite(imgBuf,height * lineByte,1,fp);fclose(fp);return 1;
}
0 0
- stm32 LCD截屏存 24bmp图
- LCD驱动以及BMP图四字节对齐的问题
- stm32 FSMC LCD
- STM32 FSMC TFT LCD
- STM32-FSMC-LCD详解
- STM32 LCD横竖屏
- STM32的LCD
- Stm32+STemWin+LCD
- STM32 RTT LCD
- stm32 驱动 TFT LCD
- stm32电机lcd-5110
- lcd显示bmp图片程序
- stm32 LCD及触摸测试
- STM32 FSMC的用法--LCD
- STM32 SPI驱动TFT LCD
- 关于LCD以及BMP和RGB565
- STM32学习之路-LCD(2)<LCD初始化>
- 32位bmp图转24位bmp图
- VMware 虚拟机中添加新硬盘的方法
- Objective-C字符串处理
- C语言----指针
- C/C++刁钻问题各个击破之细说sizeof
- MySQL 的备份与恢复
- stm32 LCD截屏存 24bmp图
- 如何做好移动安全(梆梆加固后的APK破解提取dex)
- SVN-eclipse插件地址
- 【转载】Java 6 JVM参数选项大全(中文版)
- cloudstack基本概念(1.结构)
- UVa:106 Fermat vs. Pythagoras
- Xcode配置SVN详细步骤
- 测试覆盖率工具汇总
- LPC1768之串口UART0