zoukankan      html  css  js  c++  java
  • TC图像编程汉字串显示【原创】

    TC图像编程-汉字串显示【原创】
    2008/03/09 14:36
    /*我把这代码贴出来是学习之用,所以一些说明我也就懒得讲了*/

    /*********************************
    作者:HungryAnt
    姓名:孙麟
    E-mail:ljsunlin@126.com
    QQ:517377100
    blog:http://hi.baidu.com/zhongji/blog
    *********************************/

    #include<stdio.h>
    #include<graphics.h>

    /*+++++++++++++++++++++++++++汉字串显示+++++++++++++++++++++++++++++++++++++*/
    FILE *zh;
    int zh_print16(int x,int y,char *pix,int color){/*显示16点阵汉字*/
        int i,j,k;
        for(i=0;i<16;i++)
            for(j=0;j<2;j++)
                for(k=0;k<8;k++){
                    if(pix[i*2+j] & 0x80>>k)putpixel(x+j*8+k,y+i,color);
                    /*else putpixel(x+j*8+k,y+i,BLUE);*/
                }
    }
    void zh_str(int x,int y,int width,unsigned char *str,int color){/*汉字和英文字串显示,width表示每一行的汉字数*/
        int i=0,j=0;
        long qm,wm,address;
        unsigned char pix[32];/*存放点阵16*16==32*8*/

        while(str[i]){
            qm=(long)str[i]-0xA0;/*区码*/
            i++;
            wm=(long)str[i]-0xA0;/*位码*/
            i++;

            address=((qm-1)*94+(wm-1))*32;/*获取汉字在文件中的位置*/

            fseek(zh,address,SEEK_SET);/*文件中偏移位置*/
            fread(pix,32,1,zh);/*读取点阵32*8=16*16*/
            zh_print16(x,y,pix,color);

            x+=16;
            j++;
            if(j==width){
                y+=16;
                x-=width*16;
                j=0;
            }

        }
    }
    void ha_graph(){/*自定义图形检测*/
        int gdriver = DETECT, gmode, errorcode;
        registerbgidriver(EGAVGA_driver);
        initgraph(&gdriver, &gmode,"");
        errorcode = graphresult();
        if (errorcode != grOk){
            printf("Graphics error: %s", grapherrormsg(errorcode));
            printf("Press any key to halt:");
            getch();
            exit(1);
        }
    }
    /*-----------------------------------------------------------------------*/

    int main(){
        unsigned char str[]="哈哈,我是孙麟。我晕啊";/*unsigned很重要,不加即错*/
        zh=fopen("HZK16","r");/*读汉字库*/
        ha_graph();
        zh_str(20,20,10,str,YELLOW);
        getch();
        fclose(zh);
        closegraph();
  • 相关阅读:
    基于.net mvc 的供应链管理系统(YB-SCM)开发随笔1-开篇
    基于.net mvc 的供应链管理系统(YB-SCM)开发随笔
    asp.net http to https
    html嵌入音频
    语义化练习分区域
    html文档引用css使用外部样式表
    字体样式 圆角边框
    HTML-标签
    前端基础—客户端
    html初识form表单
  • 原文地址:https://www.cnblogs.com/gods/p/3887674.html
Copyright © 2011-2022 走看看