目标:在文本框内输入任意一个汉字或字符,设定好字体,然后输出到任意点阵  比如16×16,16×24,16×32,24×16这样。请问如何做?  注:vb程序

解决方案 »

  1.   


    有趣的问题。肯定可以做,但要牵涉到很多 API 处理以及一些判断算法(包括一些判断规则)。
      

  2.   

    之前做过,是GB2312的全部汉字,就是一个字库。
    的确是要用很多API,大体思路是将字体绘入场景,然后依次读取像素,组合成字模数据。
    要注意的是:
    字模是24时的边界对齐问题。
    建立的位图是单色的就够用了。
    取像素不要用GetPixel,可以用GetDIBits或CreateDIBSection(结合指针)。
    感觉单做一个或几个的汉字点阵是没有实际意义的,明白了原理,应该做标准的GB2312字库,这样便于调用。注意是按照区位码排列的。
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
        Dim x As Long, y As Long
        
        Picture1.Cls
        Picture1.Print Left$(Text1.Text, 1)
        
        Debug.Print Left$(Text1.Text, 1)
        For y = 0 To 15
            For x = 0 To 15
                Debug.Print IIf(Picture1.Point(x, y) = vbBlack, "1", "0");
            Next
            Debug.Print
        Next
    End SubPrivate Sub Form_Load()
        Picture1.BackColor = vbWhite
        Picture1.ForeColor = vbBlack
        Picture1.AutoRedraw = True
        Picture1.ScaleMode = vbPixels
        Picture1.FontName = "FixedSys"
        Picture1.FontSize = ScaleY(16, vbPixels, vbPoints)
    End Sub