Ubuntu系统要安装好编译环境,若无,详情参考:https://blog.youkuaiyun.com/arau_sh/article/details/6587396
一、区位码与机内码简介

- 所有汉字及符号放在一个
94*94的方阵中,行叫做区,列叫做位,所以是94区、94位,也可以理解为坐标,每一个汉字或者符号都对应一个区码和位码,把区码和位码组合起来,区码在前,位码在后,就是区位码。
GB2312字符集中:
1)01~09区(682个):特殊符号、数字、英文字符、制表符等,包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母等在内的682个全角字符;
2)10~15区:空区,留待扩展;
3)16~55区(3755个):常用汉字(也称一级汉字),按拼音排序;
4)56~87区(3008个):非常用汉字(也称二级汉字),按部首/笔画排序;
5)88~94区:空区,留待扩展

- 在计算机中,区位码会与ASCII码混淆,为了避免混淆,要避开ASCII码(00H~1FH),还要与ASCII码相区分开,所以在原始的区码和位码上分别加上20H(避开ASCII码),加上80H,分别构成高位字节和低位字节。
- 80H原因:规定国标码中的每个字节的
最高位都从0换成1,即相当于每个字节都再加上128(十六进制为80,即80H;二进制为1000 0000),由于ASCII码只用了一个字节中的低7位,所以,这个首位(最高位)上的“1”就可以作为识别汉字编码的标志,计算机在处理到首位是“1”的编码时就把它理解为汉字,在处理到首位是“0”的编码时就把它理解为ASCII字符。
二、字形数据存储与获取
- 点阵存储

- 获取汉字方式

三、Ubuntu下展示
3.1 ubuntu新建文件夹
新建一个文件夹,将所用图片,.cpp代码,.txt文件,ASCII码,24*24汉字点阵文件都放在这个文件夹中。

3.2 代码及.txt文件
- 编译1.cpp程序
#include<iostream>
#include<opencv/cv.h>
#include"opencv2/opencv.hpp"
#include<opencv/cxcore.h>
#include<opencv/highgui.h>
#include<math.h>
using namespace cv;
using namespace std;
void paint_chinese(Mat& image,int x_offset,int y_offset,unsigned long offset);
void paint_ascii(Mat& image,int x_offset,int y_offset,unsigned long offset);
void put_text_to_image(int x_offset,int y_offset,String image_path,char* logo_path);
int main(){
String image_path="1.jpeg";
char* logo_path="logo.txt";
put_text_to_image(20,300,image_path,logo_path);
return 0;
}
void paint_ascii(Mat& image,int x_offset,int y_offset,unsigned long offset){
//绘制的起点坐标
Point p;
p.x = x_offset;
p.y = y_offset;
//存放ascii字膜
char buff[16]

本文详细介绍了在Ubuntu系统中如何安装编译环境,并重点讲解了区位码与机内码的概念,以及如何在代码中展示汉字和ASCII字符,包括文件操作和点阵数据处理。通过实际步骤演示了汉字在图片上的绘制和文本文件的处理,适合对编译环境配置和汉字显示感兴趣的开发者。
最低0.47元/天 解锁文章
352

被折叠的 条评论
为什么被折叠?



