本帖最后由 leshak 于 2012-12-11 09:30 编辑
LCD是ILI9320 240宽X320高 16万色的LCD,要显示一副16万的BMP图像,用下面这个函数来实现void ili9320_DrawPicture
自己实现了图片全屏(240X320)显示,即 ili9320_DrawPicture(0,0,240,320,u16 *pic).
现在在屏幕上区域显示上出了问题,老是乱码。如在起始坐标为30,80 终点坐标为180 120这个区域内显示一个图片。我怀疑自己在取模上出了问题,所以请教下大家。
取模步骤:
1. 小画夹加入一个图片,查看属性,像素为宽559 高371,因为是在起点X 30 Y 80 终点 X180 Y120这个区域内显示图片,所以要图片拉伸的比例为(180-30)/559和(120-80)/40.
2.拉伸完后保存图片,然后对图片取模,数据放入*pic,程序烧录后显示不是乱码就是显示不全
不知道图片拉伸的算法 (180-30)/559和(120-80)/40. 这个式子是不是出了问题
还望高手指点下,谢谢。
附件屏幕底色是白色,因为在LCD初始化的时候将LCD全屏幕的底色都写成了白色。
* 名 称:void ili9320_DrawPicture(u16 StartX,u16 StartY,u16 EndX,u16 EndY,u16 *pic)
* 功 能:在指定座标范围显示一副图片
* 入口参数:StartX 行起始座标
* StartY 列起始座标
* EndX 行结束座标
* EndY 列结束座标
pic 图片头指针
* 出口参数:无
* 说 明:图片取模格式为水平扫描,16位颜色模式
* 调用方法:ili9320_DrawPicture(0,0,100,100,(u16*)demo);
****************************************************************************/
void ili9320_DrawPicture(u16 StartX,u16 StartY,u16 Xend,u16 Yend,u8 *pic)
|