由上面两个图片有----打开的图片的实际像素为200*256----生成的数组是102400----那么他们有什么关系呢!
200*256=51200个像素,而16位真彩色的每个像素为16位,也就是说每两个8位十六进制表示一像素点,于是有51200*2=102400。
其次是在程序中如何使用这个数组。
void LCD_ili9320_DrawPicture1(u16 StartX,u16 StartY,u16 EndX,u16 EndY)
{
u32 i;
//这里需要注意,因为这里的图片的像素点最多240*320已经超过u16,故需要定义u32,不然会滚屏!
LCD_ili9320_SetWindows(StartX,StartY,EndX,EndY);
LCD_ili9320_SetCursor(StartX,StartY);
Clr_Cs;
LCD_ili9320_WriteIndex(0x0022);
Set_Rs;
for (i=0;i<(EndX*EndY);i++)
{
LCD_ili9320_WriteData((gImage_234[2*i]<<8)+(gImage_234[2*i+1]));
//高位在前,且两个数据组合成一个16位数据表示像素值
Clr_nWr;Set_nWr;
}
Set_Cs;
}
本文详细阐述了如何通过数组表示图片像素,并解释了数组长度与图片像素之间的数学关系。同时,提供了一段使用ILI9320 LCD控制器将图片数组显示到屏幕的C代码实例,包括初始化、设置窗口、设置光标位置、写入索引、数据读取等关键步骤。
958

被折叠的 条评论
为什么被折叠?



