bmp 图片显示 ??

2019-07-21 02:09发布

本帖最后由 hpdell 于 2015-5-2 21:55 编辑

bmp 的 1bit, 4bit, 8bit, 16bit 显示都正常,唯独这个24bit 与 32bit 显示不正常,

大侠们帮忙看看是怎么回事 ??

24、32 位转化为 16位的:#define BMP_GET_RGB_565_CONVERT(red, green, blue) (u16)( (u16)((red >> 3) << 11) | (u16)((green >> 2) << 5) | (u16)(blue >> 3) )


320x480 32bit 源图片
 

320x480 32bit  单片机显示的图片
 

32bit 读取函数
                                        for (i = 1; i <= bh.height; i++) 
                                        {
                                                f_read(&fsrc, (u8 *)&bmp_buffer[0], line_byte, &counter);

                                                for (j = 0; j < bh.width; j++) 
                                                {
                                                        __IO u8 r=0,g=0,b=0;
                                                        ILI9486_SetCursor((x + j), ((y + bh.height) - i));                        //解决图片显示上下反的问题
                                                        
                                                        r = bmp_buffer[j * 4];
                                                        g = bmp_buffer[(j * 4) + 1];
                                                        b = bmp_buffer[(j * 4) + 2];
                                                        LCD_RAM = (u16)( (u16)((r >> 3) << 11) | (u16)((g >> 2) << 5) | (u16)(b >> 3) );
                                                        
                                                }
                                        }


320x480 24bit 源图片
 

320x480 24bit  单片机显示的图片
 

24bit 读取函数
                                        for (i = 1; i <= bh.height; i++) 
                                        {
                                                res = f_read(&fsrc, (u8 *)bmp_buffer, line_byte, &counter);                        //读取24位的*.bmp的颜 {MOD}数据格式: BGR,切记
                                                
                                                for (j = 0; j < bh.width; j++) 
                                                {
                                                        __IO u8 r=0,g=0,b=0;
                                                        ILI9486_SetCursor((x + j), ((y + bh.height) - i));                        //解决图片显示上下反的问题
                                                        
                                                        r = bmp_buffer[j * 3];
                                                        g = bmp_buffer[(j * 3) + 1];
                                                        b = bmp_buffer[(j * 3) + 2];
                                                        LCD_RAM = (u16)( (u16)((r >> 3) << 11) | (u16)((g >> 2) << 5) | (u16)(b >> 3) );
                                                       
                                                        
                                                }
                                        }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
hpdell
1楼-- · 2019-07-21 05:47
 精彩回答 2  元偷偷看……
login_FAE
2楼-- · 2019-07-21 06:06
我是  进来看图片的
hpdell
3楼-- · 2019-07-21 07:28
回复【2楼】login_FAE:
---------------------------------
哈哈哈,欢迎继续看哦
taizonglai
4楼-- · 2019-07-21 11:23
我也只是来看图片的,还有没有,多发点福利吧
lycreturn
5楼-- · 2019-07-21 11:54
 精彩回答 2  元偷偷看……
hpdell
6楼-- · 2019-07-21 14:23
回复【5楼】lycreturn:
---------------------------------
哈哈哈,欢迎来瞧瞧哦

一周热门 更多>