DynaPDF Manual - Page 555

Previous Page 554   Index   Next Page 556

Function Reference
Page 555 of 839
SI32 pdfInsertRawImage(
const PPDF* IPDF,
// Instance pointer
const void* Buffer, // Image buffer
UI32 BitsPerPixel,
// Color depth in bits per pixel
UI32 ColorCount,
// Number of colors in color table if any
SI32 ImgWidth,
// Image width
SI32 ImgHeight,
// Image height (negative values mirror the image)
double PosX,
// X-Coordinate of destination rectangle
double PosY,
// Y-Coordinate of destination rectangle
double ScaleWidth,
// Scaled width of destination rectangle
double ScaleHeight) // Scaled height of destination rectangle
typedef enum
= 0x1000, // Scanlines are byte aligned
= 0x2000, // RGB data format, instead of BGR
= 0x4000
// CMYK image data or color table
The function inserts an image from a raw image buffer that contains no image header. The
parameter Buffer must be a valid pointer to the image data.
The scanlines of the image must be double word aligned by default. This is the default format for
Device Independent Bitmaps (DIBs).
The scanline length can be calculated as follows:
scanLineLen = ((Width * BitsPerPixel + 31) / 32) * 4;
Or more efficient in C notation:
scanLineLen = ((Width * BitsPerPixel + 31) & ~31) >> 3;
DynaPDF 2.5 introduced several extensions which affect the data alignment, supported pixel
formats, and color spaces.
Scanlines are byte aligned. If this flag is set, the scanline length is calculated
as follows:
scanLineLen = (Width * BitsPerPixel + 7) / 8;
The image data is defined in RGB format instead of BGR. If BitsPerPixel is less
than 16 a color table in RGB format must precede the image data.
The image data is defined in CMYK. BitsPerPixel must be 1, 2, 4, 8, or 32 in
this case. If BitsPerPixel is less than 32 a color table in CMYK format must
precede the image data.

Previous topic: InsertMetafileFromHandle, InsertMetafileFromHandleEx

Next topic: Color spaces, How to calculate the image size?