好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

image2lcd转换图片值数组.doc

9页
  • 卖家[上传人]:博****1
  • 文档编号:437632555
  • 上传时间:2024-01-06
  • 文档格式:DOC
  • 文档大小:460KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • wordimage2lcd转换图片值数组STM32上的TFT彩屏要显示图片,常见的是把图片转换为数组,然后进展处理,使用的软件是image2lcd,图标和界面如下:由于彩屏是320*240的分辨率,这里我们先找一副320*240分辨率的图片对图片进展取模了先将要取模的图片打开,配置好宽度和高度,这里配置为240*320将“高位在前〞取消,设置为“16位真彩色〞,保存为“C语言数组〞,参数的配置如上图所示:这里有一点值得注意的是:转换之后将获得了一个长度为153608的数组gImage_12[153608],如果不是这个就要进展修改,否如此最终是不能正常显示的,至于153608是怎么来的,如下: 因为分辨率是240*320,并且每个像素点是16位真彩色〔2字节〕,因此图片数据的数据长度就应该是240*320*2==152600,数据帧头还有8字节,所以总共为153608字节,假设获取的不是153608字节的数据,请检查图片的分辨率,和取模软件的参数配置最后将获得的文件,保存为TXT文本文档image2lcd图片头文件信息:图片头数据的第2~5个字节表示宽和高,假设图片数组BMP_BUF[],高位在前时bmp_withd=(BMP_BUF[2]<<8)|BMP_BUF[3]bmp_lenth=(BMP_BUF[4]<<8)|BMP_BUF[5]第一个字节是扫描方式,低四位为0水平扫描,为1垂直扫描第二字节输出灰度0x04--16灰 0x18--24真彩色,0x10--16真彩色 0x20--32真彩色针对STM32F103的TFT来说,分辨率都是320*240,对应的函数处理是ili9320_DrawPicture(x0,y0,x1,y1,(u16*)(picture+BmpHeadSize));#define BmpHeadSize (8) 这里要明确x0,x1,y0,y1void ili9320_DrawPicture(u16 StartX,u16 StartY,u16 EndX,u16 EndY,u16 *pic){u32 i, total; ili9320_SetWindows(StartX,StartY,EndX,EndY); ili9320_SetCursor(StartX,StartY); LCD_WriteRAM_Prepare(); total = EndX*EndY; for (i=0;i EndY) { x++; y=StartY; } //这几行决定了宽度不是Y1,而是Y1-Y0, // LCD_WriteRAM(*pic++); }}设置有点不一样了,要上下颠倒了!实验证明:可以无死角显示图片!增加程序执行效率:void ili9320_DrawPicture(u16 StartX,u16 StartY,u16 EndX,u16 EndY,u16 *pic){ u32 i, total; u16 x,y; // ili9320_SetWindows(StartX,StartY,EndX,EndY); // ili9320_SetCursor(StartX,StartY); x=StartX; y=StartY;// LCD_WriteRAM_Prepare(); total = EndX*(EndY-StartY+1); for (i=0;i EndY) { x++; y=StartY; } // LCD_WriteRAM(*pic++); }} / 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.