Components

PNG Delphi

Components > TPNGObject > Properties > Scanline


Provides memory pointer to have direct access to the png contents

property
Scanline[const Index: Integer]: Pointer;

Description

Like delphi
TBitmap, TPNGObject now also supports direct access to the image contents (include to alpha information using AlphaScanline). This property is intended to be used by experienced graphics programmers. Also the contents depends on the current color type and bit depth values (See header property) as the table shows bellow:

Image kind

 Number of bits for each pixel

 Recommended typecast to access the scanline data

  COLOR_GRAYSCALE - Each pixel is intensity from 0 to 2^BitDepth - 1
  COLOR_PALETTE     - Each pixel is a index to the palette table
  Bitdepth = 1

1 bit

pByteArray (windows.pas)
(Except for 8 and 16, bit manangement algorithms should be used since there's more than one pixel per byte)

  Bitdepth = 2

  4 bits (not 2)

  Bitdepth = 4

4 bits

  Bitdepth = 8

  1 byte

  Bitdepth = 16
   (Grayscale)

 1 byte

  COLOR_RGB - Each pixel contains values for Red, Green, Blue intensities
  COLOR_RGBALPHA - Same as RGB but followed by an Alpha Value
  COLOR_GRAYSCALEALPHA - Same as GRAYSCALE but with alpha value
  Bitdepth = 8

 1 byte per sample

TRGBLine = array[word] of TRGBTriple;
pRGBLine = ^TRGBLine;

  Bitdepth = 16

  1 byte per sample

Note: For BitDepth = 16 images, the extra information may be accessed with ExtraScanline property.