兔八哥极品软件园    运行: 4499天 | 文章:640 篇 | 评论:505 条 | 碎语:1条

c# 点阵字体

作者:admin 发布于:2012-9-10 13:11 Monday 分类:.NET


List<byte[]> listMsg = new List<byte[]>();

for (int index = 0; index < message.Length; index++)
{
    FileStream fsAsc16 = new FileStream("ASC16", FileMode.Open);    //将"ASC16"字库文件读入文件流
    FileStream fsHzk16 = new FileStream("HZK16", FileMode.Open);    //将"HZK16"字库文件读入文件流

    string s = message.Substring(index, 1);
    if (Convert.ToChar(s) < 256)    //判断是否为中文,小于256为字符
    {
        byte[] bMsg = new byte[16];
        int offset = cnt *  (byte)(s[0]);
        fsAsc16.Seek(offset, SeekOrigin.Begin);
        fsAsc16.Read(bMsg, 0, 16);
        listMsg.Add(bMsg);
    }
    else
    {
        byte[] bMsg = new byte[32];
        byte[] bytes = Encoding.GetEncoding("GB2312").GetBytes(s.ToCharArray());
        int offset = 32 * (94 * (bytes[0] - 0xA1) + bytes[1] - 0xA1);
        fsHzk16.Seek(offset, SeekOrigin.Begin);
        fsHzk16.Read(bMsg, 0, 32);

        byte[] bMsgH = new byte[cnt];
        byte[] bMsgL = new byte[cnt];
        int l = 0;
        int h = 0;
        for (int j = 0; j < cnt * 2; j++)
        {
            if (j % 2 == 0)
                bMsgH[h++] = bMsg[j];
            else
                bMsgL[l++] = bMsg[j];
        }
        listMsg.Add(bMsgH);
        listMsg.Add(bMsgL);
    }
    fsAsc16.Close();
    fsHzk16.Close();
}

//为字节数组排序
byte[] bMessages = new byte[list.Count * 16];
for (int i = 0; i < list.Count; i++)
{
    for (int j = 0; j < list[i].Length; j++)
    {
        bMessages[i + j * list.Count] = list[i][j];
    }
}

标签: 点阵


Powered by 兔八哥极品软件 苏ICP备12049267号 sitemap