# FreeType-2.8.1 API Reference

# Bitmap Handling

## Synopsis

FT_Bitmap_Init | FT_Bitmap_Embolden | FT_GlyphSlot_Own_Bitmap
FT_Bitmap_Copy | FT_Bitmap_Convert | FT_Bitmap_Done

This section contains functions for handling FT_Bitmap objects. Note that none of the functions changes the bitmap's ‘flow’ (as indicated by the sign of the ‘pitch’ field in ‘FT_Bitmap’).

### FT_Bitmap_Init

Defined in FT_BITMAP_H (freetype/ftbitmap.h).

      FT_EXPORT( void )
      FT_Bitmap_Init( FT_Bitmap  *abitmap );

      /* deprecated */
      FT_EXPORT( void )
      FT_Bitmap_New( FT_Bitmap  *abitmap );

Initialize a pointer to an FT_Bitmap structure.

#### inout

abitmap | A pointer to the bitmap structure.

#### note

A deprecated name for the same function is ‘FT_Bitmap_New’.

### FT_Bitmap_Copy

Defined in FT_BITMAP_H (freetype/ftbitmap.h).

      FT_EXPORT( FT_Error )
      FT_Bitmap_Copy( FT_Library        library,
                      const FT_Bitmap  *source,
                      FT_Bitmap        *target);

Copy a bitmap into another one.

#### input

library | A handle to a library object.
source | A handle to the source bitmap.

#### output

target | A handle to the target bitmap.

#### return

FreeType error code. 0 means success.

### FT_Bitmap_Embolden

Defined in FT_BITMAP_H (freetype/ftbitmap.h).

      FT_EXPORT( FT_Error )
      FT_Bitmap_Embolden( FT_Library  library,
                          FT_Bitmap*  bitmap,
                          FT_Pos      xStrength,
                          FT_Pos      yStrength );

Embolden a bitmap. The new bitmap will be about ‘xStrength’ pixels wider and ‘yStrength’ pixels higher. The left and bottom borders are kept unchanged.

#### input

library | A handle to a library object.
xStrength | How strong the glyph is emboldened horizontally. Expressed in 26.6 pixel format.
yStrength | How strong the glyph is emboldened vertically. Expressed in 26.6 pixel format.

#### inout

bitmap | A handle to the target bitmap.

#### return

FreeType error code. 0 means success.

#### note

The current implementation restricts ‘xStrength’ to be less than or equal to 8 if bitmap is of pixel_mode FT_PIXEL_MODE_MONO.

If you want to embolden the bitmap owned by a FT_GlyphSlotRec, you should call FT_GlyphSlot_Own_Bitmap on the slot first.

Bitmaps in FT_PIXEL_MODE_GRAY2 and FT_PIXEL_MODE_GRAY@ format are converted to FT_PIXEL_MODE_GRAY format (i.e., 8bpp).

### FT_Bitmap_Convert

Defined in FT_BITMAP_H (freetype/ftbitmap.h).

      FT_EXPORT( FT_Error )
      FT_Bitmap_Convert( FT_Library        library,
                         const FT_Bitmap  *source,
                         FT_Bitmap        *target,
                         FT_Int            alignment );

Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, 8bpp or 32bpp to a bitmap object with depth 8bpp, making the number of used bytes line (a.k.a. the ‘pitch’) a multiple of ‘alignment’.

#### input

library | A handle to a library object.
source | The source bitmap.
alignment | The pitch of the bitmap is a multiple of this parameter. Common values are 1, 2, or 4.

#### output

target | The target bitmap.

#### return

FreeType error code. 0 means success.

#### note

It is possible to call FT_Bitmap_Convert multiple times without calling FT_Bitmap_Done (the memory is simply reallocated).

Use FT_Bitmap_Done to finally remove the bitmap object.

The ‘library’ argument is taken to have access to FreeType's memory handling functions.

### FT_GlyphSlot_Own_Bitmap

Defined in FT_BITMAP_H (freetype/ftbitmap.h).

      FT_EXPORT( FT_Error )
      FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot  slot );

Make sure that a glyph slot owns ‘slot->bitmap’.

#### input

slot | The glyph slot.

#### return

FreeType error code. 0 means success.

#### note

This function is to be used in combination with FT_Bitmap_Embolden.

### FT_Bitmap_Done

Defined in FT_BITMAP_H (freetype/ftbitmap.h).

      FT_EXPORT( FT_Error )
      FT_Bitmap_Done( FT_Library  library,
                      FT_Bitmap  *bitmap );

Destroy a bitmap object initialized with FT_Bitmap_Init.

#### input

library | A handle to a library object.
bitmap | The bitmap object to be freed.

#### return

FreeType error code. 0 means success.

#### note

The ‘library’ argument is taken to have access to FreeType's memory handling functions.