点整汉字是 m*n 的点
一个二进制串 0100001.....
1是黑点,0 是白点;我想快速在 窗体上或 Pic 中(m*n像素的网格内)绘出来/ 如何画。
我用了一个循环不停的 画点 可以画出来,但速度很慢。当显多个汉字的时候,很慢。我见过一个程序,画 6000个字,比我画20个还快。但我不知道源码请各位给点好的意见,有源代码更好。
其他变成语言的也可以。
up 也给分。
一个二进制串 0100001.....
1是黑点,0 是白点;我想快速在 窗体上或 Pic 中(m*n像素的网格内)绘出来/ 如何画。
我用了一个循环不停的 画点 可以画出来,但速度很慢。当显多个汉字的时候,很慢。我见过一个程序,画 6000个字,比我画20个还快。但我不知道源码请各位给点好的意见,有源代码更好。
其他变成语言的也可以。
up 也给分。
可用CreateDIBSection建立一个单色图,因为它可以与你那个二进制串正好一一对应,也许都不用处理了。用GetDIBits取数组,处理后SetDIBits放回,再BitBlt绘入Pic。
picture1.currenty=50
picture1.print "汉字"
其他FONT参数都可以设置。
你可以向一些专业的设计人员要一些Windows字体库就可以了,可能你不是很在意这方面的资料
其实专业的字体库很多中文的、英文的加起来最少有上万种,基本能够适应现在的设计需要
当然中文POP的字体另当别论,这方面的可能少一点,不是很全,但已经能满足大部分的POP
需要了,如果你想自己做字体文件,也可以找一些专门的软件来做,没必要自己开发一个字体
库自己来调用吧,又不是DOS系统没有中文支持。当然如果你只是兴趣,用 homezj(小吉) 说的方法是可以的,而且速度是VB能做到的最快的方法。
当然如果有其他第三方的API或控件可能更快。但是你必须先了解VB的高级图形程序设计才能发挥出类似于TextBox的数度效果
可以提供一些方向供你学习
先了解绘图设备:
1、如何创建设备;如何删除设备;如何将绘图对象选入设备。
2、了解设备场景相关对象,如位图、画笔、刷子、字体等等。
3、了解位图的概念;如何创建位图;如何删除位图;如何将位图选入设备;
如何高速处理位图信息。
以下列出来几个相关的API供你参考:
CreateCompatibleDC
CreateBitmap
SelectObject
DeleteObject
DeleteDC
GetBitmapBits
SetBitmapBits
StretchBlt
DrawText因为详细说的话太多内容,只有提供你一个开发方向,如果你搞懂了以上API函数
绝对可以做出类似于TextBox显字速度的画字程序。
注意:在做字模的时候注意文字宽度,你可能会遇到问题。可能在“1”这些文字
两边会有黑边,你如果一开始就注意的宽度的识别及存储就不会有问题了。
完全可以达到你想要的效果,你的EMail?
homezj(小吉) ( ) 信誉:100 2005-01-11 11:43:00 得分: 0
=================================================================
可用CreateDIBSection建立一个单色图,因为它可以与你那个二进制串正好一一对应,也许都不用处理了。用GetDIBits取数组,处理后SetDIBits放回,再BitBlt绘入Pic。
在12*12的文字打满1024*768的屏幕而言和DrawText函数输出的速度差不了多少。
这样说的原因肯定是对我说的那几个API不了解,要不就是没有以这种技术做过
这样的程序,不然就不会这样说了。
我是看完搂主的这个问题后才有了灵感,想看看VB的速度在这方面到底有多快,
所以立即写了个程序看看,果然不负期望,速度理想,但是因为只是测试,所以
我在处理半角字符(如:123abc,.)的时候会有两条黑边,但全角字符和中文都
是正常显示。造成的原因是半角符号的宽度不是统一的,我也懒得处理,但除此
之外速度看不出有什么慢。
Point或GetPexl或SetPexl为什么慢,因为它们每取出或改写一个点,就要做取DC、色彩转换、最近色查找、释放DC等一系列对hDC访问的操作,而GetDIBits或GetBitmapBits是一次取出所有点,用数组处理,两种速度差距是巨大的,而且图片越大差距越大,足有几百倍几千倍...
picture1.currenty=位置信息
picture1.print "你的汉字"
首先谢谢各位的关怀我是做汉字库的。我问了做操作系统的,他们都是将汉字先在内存内画成图,然后一次性拷贝到屏幕上,但我不知道具体函数是什么,如何在内存利先画。SupermanKing(人类)
您好
请问
CreateCompatibleDC
CreateBitmap
SelectObject
DeleteObject
DeleteDC
GetBitmapBits
SetBitmapBits
StretchBlt
DrawText
这几个函数具体怎么用?