zoukankan      html  css  js  c++  java
  • RGB555转RGB565

         做tft彩屏显示图片的时候,显示16位位图,显示屏的显示模式为RGB565。使用img2lcd转换后的16位bmp,显示出来后,颜色有偏差;转换为565格式的bin文件,显示完全正常,可以确定转换为bmp后,格式为RGB555。网上查找相关资料显示,Windows 图片查看器显示正常的图片,均为RGB555格式,系统自带画图画图工具保存时,不支持将文件保存为16位位图格式。

      以下为555转565的程序片段,转换后的结果和使用img2lcd软件保存为565格式的结果完全相同。转换的结果其实就是将原来5位G扩展为6位。即左移1为,然后右边补0。这样转换后,和img2lcd软件转换的结果对比,发现有一部分数据不一致。原来移位后,img2lcd软件在右边不是全都补0,而是看原来G中的最后1位若为1,则补1,若为0,则补0,程序中最后加入一句判断,这样转换后,就完全一致了。

    char c1=0x6b,c2=0x7b;              // 0rrr rrgg(c1) gggb bbbb(c2)         RGB555   
    char c3,c4;                       
    c3= c1<<1;
    c3|= c2>>7;

    c4 = c2<<1;
    c4&= 0xc0;
    c4|= c2&0x1f;
    if(c2&0x20) c4+=0x20;

    uint16_t color = (c3<<8) | c4;    // rrrr rggg(c3) gggb bbbb(c4)          RGB565

  • 相关阅读:
    uni_app 跳转到外部html5 的页面 (web-view) 的一些使用
    vue初学备份(动态切换class类)
    MySQL数据库基本操作
    蛋疼的JavaScript(二)this
    Java中的String,StringBuffer和StringBuilder
    LintCode_1 单例模式
    [转载]C语言EOF是什么?
    Python中的枚举
    对BOM的总结
    python类相关总结(持续更新)
  • 原文地址:https://www.cnblogs.com/King-Gentleman/p/5925109.html
Copyright © 2011-2022 走看看