【项目1_电子书】第2.3.1/2.3.2课、freetype矢量字体的理论介绍和PC测试

主 机:VMWare--Ubuntu-16.04.2-x64-100ask
开发板:Mini2440--256M NandFlash,   2M NorFlash,   64M SDRAM,   LCD-TD35;
    bootlorder:u-boot1.16,      Kernel:2.6.22.6;
编译器:arm-linux-gcc-4.3.2


 

节2.3 freetype矢量字体
1、关于
/* use 50pt at 100dpi */
error = FT_Set_Char_Size( face, 50 * 64, 0, 100, 0 ); /* set character size */
/*字符像素 pixels = 50 /72 * 100 = 69 */
的问题:字符像素什么意思?一个字符在LCD上所占的像素个数?还是字体的边长所占的像素个数?
答:不知,但按照上面的意思应该是字符边长所占的像素个数。
后续证明是的。

----------------------------------------------

2.3.2节_数码相框_在PC上测试freetype
在PC:
tar xjf freetype-2.4.10.tar.bz2
./configure
make
sudo make install

gcc -o example1 example1.c -I /usr/local/include/freetype2 -lfreetype -lm
gcc -finput-charset=GBK -fexec-charset=UTF-8 -o example1 example1.c -I /usr/local/include/freetype2 -lfreetype -lm
./example1 ./simsun.ttc abc


---------------------------------------------------
摘录:【宽字符wchar_t和窄字符char区别和相互转换】
默认情况下,如果不加_T或L,默认情况下所有的字符都是ANSI编码。
转换的时候是与encoding相关的,转换完后显示是和本地的language相关的。

windows:
MultiByteToWideChar和WideCharToMultiByte, MultiByteToWideChar可将utf-8编码的多字节或是ANSI编码的多字节(即两个字节)等
转换为Unicode的宽字符wchar_t。例如,两个byte的窄字符表示的ANSI汉字转换为Unicode的宽字符wchar_t。WideCharToMultiByte可
以将wchar_t转换utf-8或ANSI 等编码的多字节。

linux:mbstowcs和wcstombs
MultiByteToWideChar根据接口中指定的encoding方式将source多字符转换为对应的unicode值的宽字符;WideCharToMultiByte则刚好
相反,是根据指定的encoding编码方式将unicode字符转换为指定的编码方式的多字符。
    char str[] = "中";
    int len = MultiByteToWideChar(CP_ACP,0,str, -1, NULL,0);
    wchar_t *w_string = new wchar_t[len];
    memset(w_string,0,sizeof(wchar_t)*len);
    MultiByteToWideChar(CP_ACP, 0, str,-1,w_string, len);

    运行结果:
    则len的长度为2,得到两个宽字符。*w_string则是'中'的宽字符值,*(w_string+1)则为结束符'\0'对应的宽字符值0.

    详细的转换过程,下面的link中有详细描述:
    http://www.ccw.com.cn/college/soft/b2c/os/htm2011/20111128_954237.shtml
   
   另外附上一个非常不错的文章链接:
   http://club.topsage.com/thread-2227977-1-1.html
来源:CSDN 原文:https://blog.csdn.net/nodeathphoenix/article/details/7416725
---------------------------------------------------

posted @ 2019-07-21 19:03  大秦长剑  阅读(212)  评论(0编辑  收藏  举报