今天项目中有一个问题,用DC在一个24位的bitmap上写字体,字体竟然模糊了,因为Windows Mobile的屏幕颜色深度是16位的。
    以下是一位网友的代码:

当压缩格式为   BI_BITFIELDS   时,在位图信息(即BITMAPINFOHEADER)后面接着三个DWORD型数据,就是掩码数据,  
  一般为:0xF800(兰色掩码),0x07E0(绿色掩码),0x001F(红色掩码),这是565的格式  
  如果为:0x7C00,   0x03E0,   0x001F,   则是555的格式(这也是bitcount=16,而压缩标志为BI_DIB时的默认格式)

BITMAPINFO *bitmapInfo = (BITMAPINFO*)malloc( sizeof(BITMAPINFO)+sizeof(RGBQUAD)*(255) );
  memset( bitmapInfo, 0, sizeof(BITMAPINFO)+sizeof(RGBQUAD)*(255) );
  bitmapInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
  bitmapInfo->bmiHeader.biWidth = m_uWidth;
  bitmapInfo->bmiHeader.biHeight = uLineCount*uLineHeight + m_uLineSpace*(uLineCount-1);
  bitmapInfo->bmiHeader.biPlanes = 1;
  bitmapInfo->bmiHeader.biBitCount = 16;
  bitmapInfo->bmiHeader.biCompression = BI_BITFIELDS;
  bitmapInfo->bmiHeader.biSizeImage = 0;

bitmapInfo->bmiColors[0].rgbBlue   =   0;  
  bitmapInfo->bmiColors[0].rgbGreen   =   0xF8;  
  bitmapInfo->bmiColors[0].rgbRed   =   0;  
  bitmapInfo->bmiColors[0].rgbReserved   =   0;  
  bitmapInfo->bmiColors[1].rgbBlue   =   0xE0;  
  bitmapInfo->bmiColors[1].rgbGreen   =   0x07;  
  bitmapInfo->bmiColors[1].rgbRed   =   0;  
  bitmapInfo->bmiColors[1].rgbReserved   =   0;  
  bitmapInfo->bmiColors[2].rgbBlue   =   0x1F;  
  bitmapInfo->bmiColors[2].rgbGreen   =   0;  
  bitmapInfo->bmiColors[2].rgbRed   =   0;  
  bitmapInfo->bmiColors[2].rgbReserved   =   0;

m_hBitmap = CreateDIBSection( m_hCompatibleDc, bitmapInfo, DIB_RGB_COLORS, &pBitmapBuffer, NULL, NULL );
  GetObject( m_hBitmap, sizeof(DIBSECTION), &dibSection );

把这个位图选入DC,然后draw text,字体就清楚了。

转载于:https://www.cnblogs.com/appleseed/archive/2008/12/29/1364390.html

字体模糊的解决办法 Windows Mobile相关推荐

  1. html 字体模糊,详解css3使用transform出现字体模糊的解决办法

    这个问题很奇葩,话不多少直接上代码: .g-dialog-wrapper { position: fixed; top: 50%; left: 50%; transform: translate(-5 ...

  2. FireFox火狐浏览器字体模糊的解决办法

    FireFox火狐浏览器字体模糊的解决办法.打开选项->高级->关闭"自动启用硬件加速"! 解决问题! 转载于:https://my.oschina.net/u/179 ...

  3. 关于CSS transition:translate导致字体模糊的解决办法

    请依次验证以下几种情况: 1 是否使用了translate3d 使用translate3d可能使浏览器开启GPU加速,GPU加速的实现原理会导致模糊,详见segmentfault为何使用css3 tr ...

  4. css3使用transform出现字体模糊的解决办法

    这个问题很奇葩,话不多少直接上代码: .g-dialog-wrapper {position: fixed;top: 50%;left: 50%;transform: translate(-50%, ...

  5. Adobe acrobat 打开pdf文件字体模糊的解决办法

    工具栏-编辑-首选项-渲染-平滑文本-用于显示器 --------我是华丽的分割线-------- 至此,解决完毕,留文存档.

  6. 升级chrome后字体模糊的解决办法

    这里有个最简单的办法:控制面板删除chrome  然后重装.   当然如果你的chrome上有一些书签什么的,你可以用的登录google帐号同步一下.然后再卸载,   重新安装的时候,要断网安装. c ...

  7. mac中的Windows虚拟机字体太小解决办法

    mac中的Windows虚拟机字体太小解决办法 - vue技术交流群(864583465) 1.关闭虚拟机 2.找到虚拟机的设置界面 3.点击显示器,在出现的窗口中勾选掉"Retina全分辨 ...

  8. 关于VSCode和electron系软件字体发虚/模糊的解决办法

    关于VSCode和electron系软件字体发虚/模糊的解决办法 最直接的解决办法是关闭GPU渲染 另一种解决办法,关闭GPU FXAA选项 最直接的解决办法是关闭GPU渲染 在应用程序的快捷方式中加 ...

  9. Firefox和IE中浏览一些网页字体模糊的解决方法

    Firefox中浏览一些网页字体模糊的解决方法 现象:Firefox中浏览一些网页字体模糊,其他网页不会 猜测:这些网页字体定义为Windows里面的字体,而linux没有这些字体,采用默认字体后变模 ...

最新文章

  1. Opportunity update implementation in backend
  2. OC2_点语法(属性关键字)
  3. python库快速安装_python的pip快速安装代码
  4. 【51nod - 1875】 丢手绢(约瑟夫问题,可打表,用STL模拟)
  5. 哇、、、、C++ 实现单向链表
  6. 黄聪:Discuz X2.0 SEO:论坛面包屑导航伪静态 去掉面包屑导航forum.php(转)
  7. python minimize_【趣味案例】用Python来做一个屏幕录制工具
  8. android升级异常,升级AndroidX遇到的问题
  9. Speaking of Samsung, I don’t know if you have any
  10. await原理 js_深入浅出node.js异步编程 及async await原理
  11. 朋友易得,知己难求 堪哉
  12. java request 原理_JavaWeb response和request对象原理及实例解析
  13. 笨方法学python 习题42
  14. 2的指数字节转与MB、GB换算关系
  15. 2022年十大科技应用趋势
  16. apache common base64编码
  17. C#基础知识学习之 ✨ 委托的兄弟姐妹们 delegate、Action、Func、Predicate
  18. 零基础学Java_Map接口、HashMap 类、HashTable 类、TreeMap 类(整理总结)
  19. 【程序源代码】微信支付接口源码
  20. python判断语句的使用

热门文章

  1. [案例]某体育用品公司在零售领域BI的产品应用解决方案
  2. 帆软报表登录-某些用户需要用自定义的登陆界面,有些用户用默认登录界面
  3. Python学习——K近邻算法
  4. weblogic mysql数据源配置文件_通过weblogic数据源实现配置oracle and mysql方法
  5. rez注入器源码_CF-rez-Tool crossfire的REZ文件全套修改工具 - 下载 - 搜珍网
  6. python pip升级问题之使用代理端口
  7. mysql多次join后count优化_mysql join count 优化案例
  8. java in array_ArrayList to Array Conversion in Java
  9. Java 1.3.1 带标签的 break语句
  10. C 库函数 - pow()