点阵汉字字模显示~Ubuntu系统下用C语言调用opencv库为图片加logo

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

Ubuntu系统要安装好编译环境,若无,详情参考:https://blog.csdn.net/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 =
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值