首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 平面设计 > 图形图像 >

24位图像数据在16位显示屏上显示的有关问题

2013-03-26 
24位图像数据在16位显示屏上显示的问题基于ARM2410,摄像头设置参数为VIDEO_PALETTE_RGB24采集图片信息通过

24位图像数据在16位显示屏上显示的问题
基于ARM2410,摄像头设置参数为VIDEO_PALETTE_RGB24采集图片信息通过
imageptr=(unsigned short *)get_frame_address(&vd);
图像数据信息地址保存在imageptr中,
可是显示屏只能显示16位的图片。
从网上查了一些东西要24位转成16位,我于是修改了代码,可是还是不能显示。请大家指教。
[解决办法]
采集的是RGB24格式的,显示的是16位的,但要确定格式(灰度图还是RGB或者YUV格式?)确定后再按相应的转换公式转换
[解决办法]
这是我项目里最近用到的,是C#的代码,不过应该很容易转成你想要的吧。而且我这里是从现在最最常用的
32位ARGB(8888)转 555RGB 和565RGB的代码,应该都能够满足你的需求了。。。



 public static ushort _32Argb_to_555(Color clr)
        {
            int color = clr.ToArgb();
            return (ushort)((color >> 3) & 0x7C00 
[解决办法]

                (color >> 10) & 0x03E0 
[解决办法]

                (color >> 19) & 0x001F);
        }

        public static ushort _32Argb_to_565(Color clr)
        { 
            int color= clr.ToArgb();
            return (ushort)((color >> 3) & 0xF800 
[解决办法]

                (color >> 10) & 0x07E0 
[解决办法]

                (color >> 19) & 0x001F);
        }


热点排行