#include #include #include void read_hzk16(const unsigned char *s, char* chs)
int size = 32;
unsigned long offset=((s[0]-0xa1)*94+(s[1]-0xa1))*size; //找出漢字在hzk16中的偏移位置
fseek(fp,offset,seek_set); //檔案指標偏移到要找的漢字處
fread(chs,1,size,fp); //讀取該漢字的字模
fclose(fp);
}
void display_hzk16(const char* chs)
for (j = 7; j >= 0; j--)
else
}return 0;
}公升級版本,支援放大、包邊
#include #include #include #include #define black 'x'#define white '-'
#define edge 'o'
// gb2312 簡體 16x16
void read_hzk16(const unsigned char *s, char* chs)
int size = 32;
unsigned long offset=((s[0]-0xa1)*94+(s[1]-0xa1))*size; //找出漢字在hzk16中的偏移位置
ret = fseek(fp,offset,seek_set); //檔案指標偏移到要找的漢字處
assert(ret == 0);
ret = fread(chs,1,size,fp); //讀取該漢字的字模
assert(ret == size);
fclose(fp); }
// gb2312 繁體(簡轉繁) 16x16
void read_fanti_hzk16(const unsigned char *s, char* chs)
int size = 32;
unsigned long offset=((s[0]-0xa1)*94+(s[1]-0xa1))*size; //找出漢字在hzk16中的偏移位置
ret = fseek(fp,offset,seek_set); //檔案指標偏移到要找的漢字處
assert(ret == 0);
ret = fread(chs,1,size,fp); //讀取該漢字的字模
assert(ret == size);
fclose(fp); }
// gbk 字型檔 16x16 相容gb2312簡體 擴充套件了繁體
void read_gbk16(const unsigned char *s, char* chs)
int size = 32;
int qh = s[0] - 0x81;
int wh = (s[1] < 0x7f) ? (s[1] - 0x40) : (s[1] - 0x41);
unsigned long offset=(qh*190+wh)*size; //找出漢字在字型檔中的偏移位置
ret = fseek(fp,offset,seek_set); //檔案指標偏移到要找的漢字處
assert(ret == 0);
ret = fread(chs,1,size,fp); //讀取該漢字的字模
assert(ret == size);
fclose(fp);
}
// ascii 16x8
void read_asc16(const unsigned char *s, char* asc)
int size = 16;
unsigned long offset=s[0]*size;
ret = fseek(fp,offset,seek_set);
assert(ret == 0);
ret = fread(asc,1,size,fp);
assert(ret == size);
fclose(fp); }
void show(const char* p, int row, int col)
printf("%c", p[i]);
}printf("\n\n");}
void bit2char(const char* chs, int size, char* font)
else
}return 0;
}
hzk16理解和簡單使用
一般我們使用16x16的點陣宋體字庫,所謂16x16,是每乙個漢字在縱 橫各16點的區域內顯示的。不過後來又有了hzk12 hzk24,hzk32和hzk48字型檔及黑體 楷體和隸書字型檔。雖然漢字型檔種類繁多,但都是按照區位的順序排列的。前乙個位元組為該漢字的區號,後乙個位元組為該字的位號。每乙個...
基於HZK16的漢字顯示技術
國標漢字字符集 gb2312 80 在漢字作業系統中以漢字型檔的形式提供,並對漢字型檔的結構做了統一規定。漢字型檔的結構如圖 hzk16的gb2312 80支援的漢字有6763個,符號682個。字型檔有94個區,其中一級漢字有3755個,按聲序排列,二級漢字有3008個,按偏旁部首排列。每個區有94...
漢字型檔HZK16的簡單介紹
hzk16 字型檔是符合gb2312標準的16 16點陣字型檔,hzk16的gb2312 80支援的漢字有6763個,符號682個。其中一級漢字有3755個,按聲序排列,二級漢字有3008個,按偏旁部首排列。我們在一些應用場合根本用不到這麼多漢字字模,所以在應用時就可以只提取部分字型作 為己用。hz...