ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数码相框-----------字符编码

2021-04-06 09:34:32  阅读:234  来源: 互联网

标签:编码 UTF libjpeg charset 相框 ----------- lcd 数码 FT


2.显示文字

2.1 文字编码方式     数字    代码什么  显示为什么   引入字符编码       使用不同的编码代码不同的文字

    1.0 开始阶段                          欧美人发明计算机   用一个字节表示  8位里面的低七位表示字母   0x61  A   0x41

    2.0 字符编码阶段                     中   D6D0  GBK       港澳台   繁体字      用什么表示哪一个文字     BIG5     BIG5编码表

    3.0 全世界同一个 unicode      用什么数字  表示  字符/字   

文件: abc    ascii     61 62 63       9字节

    4.0用什么方法既节省内存又能表示    UTF-8    UTF-16LE      UTF-16BE  

    

                          数字    代表    字                   通过字符编码格

    字符编码表通过什么存储    用UTF-8    UTF-LE

    显示:   字体文件包含:      1.0编码表      2.字体数据  (宋体   新宋体)       

               写一个带有汉字的文件, 如何存储的

               #include  <stdio.h>

    int   main(int argc,char *argv)

    {

        int  i =0;

        unsigned   char  *str = "abc中";

        while(str[i])

        {

          printf("%02x",str[i]);

          i++;

        }

        printf("\n");

        return 0;

    }

    保存为  ansi.c     utf-8.c   

    同一段相同的代码用不同的编码方式,会导致不同的结果

    man  gcc

    编译程序要指定字符集

    /charset

    -finput-charset= charset        表示源文件的编码方式,默认以UTF-8来解析

    -fexec-charset=charset         表示可执行程序的字以什么编码方式来表示,默认是UTF-8

          ex: gcc -o a  a.c                //默认 UTF-8    

          gcc  -fexec-charset=GBK    -fexec-charset = UTF-8    -o   uff-8    ansi.c

2.2英文字母,汉字的点阵显示

    原理:                     开发板 :   cpu     LCD控制器        SDRAM(framebuffer)      修改framebuffer  就可以显示

    echo   hello   >  /dev/tty1                         在lcd 上可以显示  hello   说明内核中肯定有点阵文件                8x16像素      8x16bit

                        0x41   字母 A       找到字母A  的点阵   

    统计信息:    fstat(hz_hzk16,&hzk_stat);       //统计汉字库的信息

          memset();

    HZK16  的使用方法   

    测试:
    1.0 配置、修改内核支持把lcd.c编译进去

        cp   /work/drivers/10th_lcd/lcd.c     drivers/video

      vi    drives/Makefile 

    2.0 使用新内核启动

    

    3.0 freetype 库  字体引擎与指南

      点阵的形式描绘出各种字体文件    C盘里面  simsun.ttc  新宋      中  字形  glyph(关键点)

      想象一个字体文件的显示过程

        1.给定一个文字    ‘A’  可以确定编码值

        2.根据“编码值”从字体文件中找到    charmaps   

           3.设置字体大小

        4.用某些函数把glyph的点缩放位

        5.转换位图点阵

        6.在lcd上显示出来

    4.0代码的过程

      详见使用指南

      1.0初始化

      2.0加载字体FACE   FT_New_Face

      3.0设置字体大小   FT_set_char_size    FT_Set_Pixel_size

      4.0加载编码值   glyph  = FT_Get_Char_Size

                                      FT_Load_Glyph()

         根据编码值 取出

          转换为位图  FT_Set_charmap

      5.0 旋转  

   英文字母,汉字的显示 

 

2.4  jpg 图片 压缩的图片   图片损失少      

  jpg 图片 得到RGB数据  存放到显存

  显存里面存放的象树的RGB数据

  把jpg图片解压出RGB的原始数据

   如何解压  libjpeg工具  libjpeg-turbo

  libjpeg-api    libjpeg是使用c语言实现的读,写JPEG文件的库(使用libjpeg的应用程序是以“scanline”为单位进行图像处理的)     

       JPEG  压缩对象  解压对象

  1.0 分配和初始化一个decompression对象

  2.0提定源文件

  3.0用jpeg  read_header 获得jpg信息

  4.0设置解压参数,比如放大  缩小

  5.0启动解压 :  jpeg_start_decompress

        6.0循环调用jpeg_read_scanes

  7.0jpeg_finish_decompress

  8.0释放decompress结构体

libjpeg  是一个矩形  一行数据是一个 scanline  某个像素的值   含有component  3个component

                     

                             

标签:编码,UTF,libjpeg,charset,相框,-----------,lcd,数码,FT
来源: https://www.cnblogs.com/ablerry-dream/p/14620307.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有