搜索
bottom↓
回复: 2

教你如何用QT提取字模

[复制链接]

出0入0汤圆

发表于 2011-12-28 15:15:03 | 显示全部楼层 |阅读模式
最近在搞LCD点陈显示,对于字模的生成与制做只能依靠第三方软件。这样有一个很大的不方便,软件是别人写的不可能完全满足自己的要球。并且要要求直接下载到显示屏上,上网搜了老半天,没搜到一个。没办法自力更生吧,发扬下优良传统吧。老规举,先是上网搜了一番。对了忘了说下,以前我学过一段时间的QT,希望用QT来完成。经过网上的一番苦苦搜索,也就搜到了几扁,总结一下基本就两点思路:一种是直接读取字库文件,这要求对这库文件的存储格式要有一定的了解,现在也没什么耐心去看这些东西。另一种是能过在IMAGE上绘单通道的图,然后提取位索引就行了。以下是大致思路和伪码。

  对于QT绘画不想说的太多,学过的人应该都知道,没学过自己学学,对于QT绘画首先要重载重绘函数:paintEvent();QT绘可以直接在Widget绘制,还可以进行双绘冲绘制(先绘制在绘图设备上,如QImage,QPixmap等上然后再一次性的绘到相应的Widget去),本次就是先在QImage上绘,然后再进行位INDEX的读取,这个读取个人有个人的方法,要求也不一样,有的要倒序正取,有的要横向正取。就实际需求而变吧。以下是伪码了:



        一、定义QImage

              QImage image(32,32, QImage::Format_MonoLSB);

                  这里定义了一个32*32点的QImage,若是要求16*16点的也得定义成32*32点的,因为计算计是64位的一行最少得4个字节

              到时候只提取自己需要的 那个16*16点就行了。

                *******补充一点 Format_MononLSB是单通道的图像格式,一位保存一个PIX。QImage中还有一个相似的是   

              Format_Monon ,两都的区别在于一个是正充排列一个是倒序排列的。

      二、定义自己的绘图设备

              QPainter painter (&image);

              看清楚了是在image上绘的哦,而不是在this上会的,这就是双缓冲绘图哦。

              QRgb backColor = qRgb(255,255,255);定义自己的颜色            

image.fill(backColor); 填充
三、开始绘制
painter.drawText (image.rect(), "袁");
四、好啦现在可以按自己的要求提取自己的字模啦
哈哈大家看的有点累了吧,下面让大家看下成果吧,以下是我用以上绘制字模截图。



(原文件名:ggggggggggggg.jpg)



以下是代码:
for(i=0;i<16;i++) {  unsigned char *lineByte=image.scanLine(i);  x=100;  for(j=0;j<2;j++)  {  unsigned char tp;  tp=lineByte[j];  for(z=0;z<8;z++)  {  if(tp&0x01)  {  paint.setPen(penR);  paint.drawText(x,y,"1");  x+=10;  }  else  {  paint.setPen(penB);  paint.drawText(x,y,"0");  x+=10;  }  tp>>=1;  }  }  y+=10;  }

  这里只是给个大致的思路,兴趣的朋友可联系我一起探讨或留言
头像被屏蔽

出0入0汤圆

发表于 2013-1-14 10:27:06 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2014-1-21 15:33:55 | 显示全部楼层
这也忒高端了吧
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 00:55

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表