资源简介

包含freetype235版本的Lib及调用所需的头文件,并附上使用样例。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 

#include “CvxText.h“

//====================================================================
//====================================================================

// 打开字库

CvxText::CvxText(const char *freeType)
{
assert(freeType != NULL);

// 打开字库文件 创建一个字体

if(FT_Init_FreeType(&m_library)) throw;
if(FT_New_Face(m_library freeType 0 &m_face)) throw;

// 设置字体输出参数

restoreFont();

// 设置C语言的字符集环境

setlocale(LC_ALL ““);
}

// 释放FreeType资源

CvxText::~CvxText()
{
FT_Done_Face    (m_face);
FT_Done_FreeType(m_library);
}

// 设置字体参数:
//
// font         - 字体类型 目前不支持
// size         - 字体大小/空白比例/间隔比例/旋转角度
// underline   - 下画线
// diaphaneity   - 透明度

void CvxText::getFont(int *type CvScalar *size bool *underline float *diaphaneity)
{
if(type) *type = m_fontType;
if(size) *size = m_fontSize;
if(underline) *underline = m_fontUnderline;
if(diaphaneity) *diaphaneity = m_fontDiaphaneity;
}

void CvxText::setFont(int *type CvScalar *size bool *underline float *diaphaneity)
{
// 参数合法性检查

if(type)
{
if(type >= 0) m_fontType = *type;
}
if(size)
{
m_fontSize.val[0] = fabs(size->val[0]);
m_fontSize.val[1] = fabs(size->val[1]);
m_fontSize.val[2] = fabs(size->val[2]);
m_fontSize.val[3] = fabs(size->val[3]);
}
if(underline)
{
m_fontUnderline   = *underline;
}
if(diaphaneity)
{
m_fontDiaphaneity = *diaphaneity;
}
}

// 恢复原始的字体设置

void CvxText::restoreFont()
{
m_fontType = 0;            // 字体类型(不支持)

m_fontSize.val[0] = 20;      // 字体大小
m_fontSize.val[1] = 0.5;   // 空白字符大小比例
m_fontSize.val[2] = 0.1;   // 间隔大小比例
m_fontSize.val[3] = 0;      // 旋转角度(不支持)

m_fontUnderline   = false;   // 下画线(不支持)

m_fontDiaphaneity = 1.0;   // 色彩比例(可产生透明效果)

// 设置字符大小

FT_Set_Pixel_Sizes(m_face (int)m_fontSize.val[0] 0);
}

// 输出函数(颜色默认为黑色)

int CvxText::putText(IplImage *img const char    *text CvPoint pos)
{
return putText(img text pos CV_RGB(255255255));
}
int CvxText::putText(IplImage *img const wchar_t *text CvPoint pos)
{
return putText(img text pos CV_RGB(255255255));
}

//

int CvxText::putText(IplImage *img const char    *text CvPoint pos CvScalar color)
{
if(img == NULL) return -1;
if(text == NULL) return -1;

//

int i;
for(i = 0; text[i] != ‘\0‘; ++i)
{
wchar_t wc = text[i];

// 解析双字节符号

if(!isascii(wc)) mbtowc(&wc &text[i++] 2);

// 输出当前的字符

putWChar(img wc pos color);
}
return i;
}
int CvxText::putText(IplImage *img const wchar_t *text CvPoint pos CvScalar color)
{
if(img == NULL) return -1;
if(text == NULL) return -1;

//

int i;
for(i = 0; text[i] != ‘\0‘; ++i)
{
// 输出当前的字符

putWChar(img text[i] pos color);
}
return i;
}

// 输出当前字符 更新m_pos位置

void CvxText::putWChar(IplImage *img wchar_t wc CvPoint &pos

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2008-05-27 11:28  CvxTextOut_demo\
     文件        4519  2008-05-27 08:43  CvxTextOut_demo\CvxText.cpp
     文件        5388  2008-05-27 08:49  CvxTextOut_demo\CvxText.h
     文件        4680  2008-05-27 08:48  CvxTextOut_demo\CvxTextOut_demo.dsp
     文件         536  2008-05-27 08:37  CvxTextOut_demo\CvxTextOut_demo.dsw
     文件         889  2008-05-27 11:25  CvxTextOut_demo\CvxTextOut_demo.sln
     文件        8704  2008-05-27 11:27  CvxTextOut_demo\CvxTextOut_demo.suo
     文件        6006  2008-05-27 11:26  CvxTextOut_demo\CvxTextOut_demo.vcproj
     文件        1427  2008-05-27 11:27  CvxTextOut_demo\CvxTextOut_demo.vcproj.LENOVO-793CDCBA.Administrator.user
     目录           0  2008-05-27 08:37  CvxTextOut_demo\include\
     目录           0  2008-05-27 08:37  CvxTextOut_demo\include\freetype\
     目录           0  2008-05-27 08:37  CvxTextOut_demo\include\freetype\config\
     文件       13454  2007-03-28 20:44  CvxTextOut_demo\include\freetype\config\ftconfig.h
     文件       23353  2007-01-09 18:20  CvxTextOut_demo\include\freetype\config\ftheader.h
     文件        1022  2006-01-31 00:49  CvxTextOut_demo\include\freetype\config\ftmodule.h
     文件       42090  2007-06-26 12:28  CvxTextOut_demo\include\freetype\config\ftoption.h
     文件        7772  2007-05-15 19:41  CvxTextOut_demo\include\freetype\config\ftstdlib.h
     文件      211232  2007-07-03 05:06  CvxTextOut_demo\include\freetype\freetype.h
     文件        4621  2006-05-12 22:23  CvxTextOut_demo\include\freetype\ftbbox.h
     文件        6245  2006-03-24 20:28  CvxTextOut_demo\include\freetype\ftbdf.h
     文件       12597  2007-01-16 13:10  CvxTextOut_demo\include\freetype\ftbitmap.h
     文件       59287  2007-06-11 12:39  CvxTextOut_demo\include\freetype\ftcache.h
     文件        7030  2007-01-12 17:06  CvxTextOut_demo\include\freetype\ftchapters.h
     文件       11837  2007-06-02 05:49  CvxTextOut_demo\include\freetype\fterrdef.h
     文件        9456  2007-01-23 14:32  CvxTextOut_demo\include\freetype\fterrors.h
     文件        3840  2007-01-16 13:10  CvxTextOut_demo\include\freetype\ftgasp.h
     文件       36303  2006-05-12 22:13  CvxTextOut_demo\include\freetype\ftglyph.h
     文件       12596  2006-05-12 21:34  CvxTextOut_demo\include\freetype\ftgxval.h
     文件        4288  2006-05-12 21:23  CvxTextOut_demo\include\freetype\ftgzip.h
     文件       77709  2007-03-11 09:20  CvxTextOut_demo\include\freetype\ftimage.h
     文件       10729  2007-01-30 17:26  CvxTextOut_demo\include\freetype\ftincrem.h
............此处省略67个文件信息

评论

共有 条评论