Vb.net 如何快速绘制可读的小文本

Vb.net 如何快速绘制可读的小文本,vb.net,fonts,gdi+,bitmap,Vb.net,Fonts,Gdi+,Bitmap,在开发基于闪存的内存管理器时,我需要能够查看大量数据。通过我的眼睛和显示器分辨率,我可以在4x6矩阵上阅读手绘3x5字母,不会有太多困难,但没有一种系统TrueType字体能够以该尺寸呈现最佳效果。我曾尝试编写代码,将字体形状绘制到屏幕外位图,然后使用DrawImage将这些位图复制到屏幕上,但无法获得良好的性能。这是为了开发,而不是生产,所以性能不必绝对最优,但我不想花太长时间等待数据屏幕刷新 让.net显示一种我想要的像素完美的字体,或者用许多小块快速构建位图,最好的方法是什么?我使用的是v

在开发基于闪存的内存管理器时,我需要能够查看大量数据。通过我的眼睛和显示器分辨率,我可以在4x6矩阵上阅读手绘3x5字母,不会有太多困难,但没有一种系统TrueType字体能够以该尺寸呈现最佳效果。我曾尝试编写代码,将字体形状绘制到屏幕外位图,然后使用DrawImage将这些位图复制到屏幕上,但无法获得良好的性能。这是为了开发,而不是生产,所以性能不必绝对最优,但我不想花太长时间等待数据屏幕刷新


让.net显示一种我想要的像素完美的字体,或者用许多小块快速构建位图,最好的方法是什么?我使用的是vb.net,所以我不能简单地将位图生成为字节数组并将其传递给位图构造函数,除非有人告诉我如何将数组转换为IntPtr。

我会找到现有的3x5像素字体,并使用它来绘制文本。这样行吗

我会找到现有的3x5像素字体,然后用它来绘制文本。这样行吗

我会使用字体编辑器将各个位图组合成位图字体,然后用该字体显示文本。

我会使用字体编辑器将各个位图组合成位图字体,然后用该字体显示文本。

我建议您自己创建字体。有几种很好的字体编辑器:

字体锻造--

创造者--

类型灯--

TTFEdit--


DoubleType--

我建议您自己创建字体。有几种很好的字体编辑器:

字体锻造--

创造者--

类型灯--

TTFEdit--


BuffyType -

以这种大小绘制可读文本应该考虑。看一下.

来绘制可读文本的大小,你应该考虑一下。看一看。

我感谢那些回答的人。为了提高反应能力,我一直在将事情过度复杂化,但这只会让事情变得更糟。我有单独的例程来处理对屏幕上项目的更改和处理屏幕重画。对于每个项目,我都保留了表示当前状态的对象、在屏幕上绘制的状态以及在背景位图中绘制的状态。当屏幕上已经绘制的项目发生更改时,我会将更改后的版本直接绘制到屏幕上(使用Control.CreateGraphics),而不会使任何内容无效。当屏幕的一部分无效并需要重新绘制时,我会更新备份位图上的项目,然后将备份位图复制到屏幕上。我的目标是避免每次项目更改时将整个备份位图复制到屏幕上。我的期望是,由于区域无效而导致的屏幕重画通常不会与项目更新混杂在一起,并且通过在屏幕上绘制项目来更新项目要比在屏幕外绘制位图并将其复制到屏幕上更快


当我将项目更改代码绘制到屏幕外位图并使包含该项目的区域无效时,性能显著提高。将位图复制到屏幕时,每个绘图操作都会受到很大的惩罚,而复制到另一个屏幕外位图时,这种惩罚是不存在的。因此,将二十个小位图复制成一个大位图,使屏幕上出现这些小位图的区域无效,然后将整个大位图复制到屏幕上(剪切到无效区域),比简单地将小位图扔到屏幕上要快得多。

感谢回答问题的人。为了提高反应能力,我一直在将事情过度复杂化,但这只会让事情变得更糟。我有单独的例程来处理对屏幕上项目的更改和处理屏幕重画。对于每个项目,我都保留了表示当前状态的对象、在屏幕上绘制的状态以及在背景位图中绘制的状态。当屏幕上已经绘制的项目发生更改时,我会将更改后的版本直接绘制到屏幕上(使用Control.CreateGraphics),而不会使任何内容无效。当屏幕的一部分无效并需要重新绘制时,我会更新备份位图上的项目,然后将备份位图复制到屏幕上。我的目标是避免每次项目更改时将整个备份位图复制到屏幕上。我的期望是,由于区域无效而导致的屏幕重画通常不会与项目更新混杂在一起,并且通过在屏幕上绘制项目来更新项目要比在屏幕外绘制位图并将其复制到屏幕上更快


当我将项目更改代码绘制到屏幕外位图并使包含该项目的区域无效时,性能显著提高。将位图复制到屏幕时,每个绘图操作都会受到很大的惩罚,而复制到另一个屏幕外位图时,这种惩罚是不存在的。因此,将二十个小位图复制成一个大位图,使屏幕上出现这些小位图的区域无效,然后将整个大位图复制到屏幕上(剪切到无效区域)比简单地在屏幕上抛出小位图快得多。

位图字体可以在GDI+中使用吗?位图字体可以在GDI+中使用吗?另外,您可以:PPlus,您可以:PDo以上任何一项都提供了一种将位图转换为字体的快速方法(例如,通过定期抓取字符)?另外,如果我想以多种颜色显示文本,并且我使用的是单间距字体,那么我最好制作包含空格和每种颜色中感兴趣的数据的字符串,还是有更好的方法?如果使用.NET标准DrawString方法,那么它有一个笔刷颜色参数。您可以设置笔刷颜色