Class cv::freetype::FreeType2#

Collaboration diagram for cv::freetype::FreeType2:

Public Member Functions#

Public Member Functions inherited from cv::Algorithm

Return

Name

Description

Algorithm()

~Algorithm()

void

clear()

Clears the algorithm state.

bool

empty()

Returns true if the Algorithm is empty (e.g. in the very beginning or after unsuccessful read.

String

getDefaultName()

void

read(const FileNode & fn)

Reads algorithm parameters from a file storage.

void

save(const String & filename)

void

write(
    const Ptr< FileStorage > & fs,
    const String & name = String() )

void

write(FileStorage & fs)

Stores algorithm parameters in a file storage.

void

write(
    FileStorage & fs,
    const String & name )

Static Public Member Functions#

Static Public Member Functions inherited from cv::Algorithm

Return

Name

Description

static Ptr< _Tp >

load(
    const String & filename,
    const String & objname = String() )

Loads algorithm from the file.

static Ptr< _Tp >

loadFromString(
    const String & strModel,
    const String & objname = String() )

Loads algorithm from a String.

static Ptr< _Tp >

read(const FileNode & fn)

Reads algorithm from the file node.

Additional Inherited Members#

Protected Member Functions inherited from cv::Algorithm

Return

Name

Description

void

writeFormat(FileStorage & fs)

Member Function Documentation#

getTextSize()#

Size cv::freetype::FreeType2::getTextSize(
const String & text,
int fontHeight,
int thickness,
int * baseLine )

Python:

cv.freetype.FreeType2.getTextSize(text, fontHeight, thickness) -> retval, baseLine

Calculates the width and height of a text string.

The function getTextSize calculates and returns the approximate size of a box that contains the specified text. That is, the following code renders some text, the tight box surrounding it, and the baseline: :

String text = "Funny text inside the box";
int fontHeight = 60;
int thickness = -1;
int linestyle = LINE_8;

Mat img(600, 800, CV_8UC3, Scalar::all(0));

int baseline=0;

cv::Ptr<cv::freetype::FreeType2> ft2;
ft2 = cv::freetype::createFreeType2();
ft2->loadFontData( "./mplus-1p-regular.ttf", 0 );

Size textSize = ft2->getTextSize(text,
                                 fontHeight,
                                 thickness,
                                 &baseline);

if(thickness > 0){
    baseline += thickness;
}

// center the text
Point textOrg((img.cols - textSize.width) / 2,
              (img.rows + textSize.height) / 2);

// draw the box
rectangle(img, textOrg + Point(0, baseline),
          textOrg + Point(textSize.width, -textSize.height),
          Scalar(0,255,0),1,8);

// ... and the baseline first
line(img, textOrg + Point(0, thickness),
     textOrg + Point(textSize.width, thickness),
     Scalar(0, 0, 255),1,8);

// then put the text itself
ft2->putText(img, text, textOrg, fontHeight,
             Scalar::all(255), thickness, linestyle, true );

See also

cv::putText

Parameters

  • text — Input text string.

  • fontHeight — Drawing font size by pixel unit.

  • thickness — Thickness of lines used to render the text. See putText for details.

  • baseLine — y-coordinate of the baseline relative to the bottom-most text point.

Returns

The size of a box that contains the specified text.

loadFontData()#

void cv::freetype::FreeType2::loadFontData(
char * pBuf,
size_t bufSize,
int idx )

Python:

cv.freetype.FreeType2.loadFontData(fontFileName, idx)
cv.freetype.FreeType2.loadFontData(pBuf, bufSize, idx)

Load font data.

The function loadFontData loads font data from memory. The data is not copied, the user needs to make sure the data lives at least as long as FreeType2. After the FreeType2 object is destroyed, the buffer can be safely deallocated.

Parameters

  • pBuf — pointer to buffer containing font data

  • bufSize — size of buffer

  • idx — face_index to select a font faces in a single file.

loadFontData()#

void cv::freetype::FreeType2::loadFontData(
String fontFileName,
int idx )

Python:

cv.freetype.FreeType2.loadFontData(fontFileName, idx)
cv.freetype.FreeType2.loadFontData(pBuf, bufSize, idx)

Load font data.

The function loadFontData loads font data from file.

Parameters

  • fontFileName — FontFile Name

  • idx — face_index to select a font faces in a single file.

putText()#

void cv::freetype::FreeType2::putText(
InputOutputArray img,
const String & text,
Point org,
int fontHeight,
Scalar color,
int thickness,
int line_type,
bool bottomLeftOrigin )

Python:

cv.freetype.FreeType2.putText(img, text, org, fontHeight, color, thickness, line_type, bottomLeftOrigin) -> img

Draws a text string.

The function putText renders the specified text string in the image. Symbols that cannot be rendered using the specified font are replaced by “Tofu” or non-drawn.

Parameters

  • img — Image. (Only 8UC1/8UC3/8UC4 2D mat is supported.)

  • text — Text string to be drawn.

  • org — Bottom-left/Top-left corner of the text string in the image.

  • fontHeight — Drawing font size by pixel unit.

  • color — Text color.

  • thickness — Thickness of the lines used to draw a text when negative, the glyph is filled. Otherwise, the glyph is drawn with this thickness.

  • line_type — Line type. See the line for details.

  • bottomLeftOrigin — When true, the image data origin is at the bottom-left corner. Otherwise, it is at the top-left corner.

setSplitNumber()#

void cv::freetype::FreeType2::setSplitNumber(int num)

Python:

cv.freetype.FreeType2.setSplitNumber(num)

Set Split Number from Bezier-curve to line.

The function setSplitNumber set the number of split points from bezier-curve to line. If you want to draw large glyph, large is better. If you want to draw small glyph, small is better.

Parameters

  • num — number of split points from bezier-curve to line

Source file#

The documentation for this class was generated from the following file: