<?xml version="1.0" encoding="UTF-8"?>
<!--

Documentation for LCL (Lazarus Component Library) and LazUtils (Lazarus 
Utilities) are published under the Creative Commons Attribution-ShareAlike 4.0 
International public license.

https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt
https://gitlab.com/freepascal.org/lazarus/lazarus/-/blob/main/docs/cc-by-sa-4-0.txt

Copyright (c) 1997-2025, by the Lazarus Development Team.

-->
<fpdoc-descriptions>
<package name="lazutils">
<!--
====================================================================
GraphType
====================================================================
-->
<module name="GraphType">
<short>
Definitions of several special types (including Raw Image) to be used for 
graphics.
</short>
<descr>
<p>
<file>graphtype.pp</file> contains graphic-related platform-independent types 
and utility functions.
</p>
<p>
<file>graphtype.pp</file> is part of the <file>LazUtils</file> package.
</p>
</descr>

<!-- unresolved references -->
<element name="Classes"/>
<element name="SysUtils"/>
<element name="Types"/>
<element name="Math"/>
<element name="System.UITypes"/>
<element name="FPCAdds"/>
<element name="LazLoggerBase"/>

<element name="TPointArray">
<short>
Type used to store an array of TPoint values.
</short>
<descr/>
<version>
Added in LCL version 4.0.
</version>
<seealso>
<link id="#lazutils.graphmath.EllipsePolygon">EllipsePolygon</link>
<link id="#lcl.lazregions.TLazRegion.AddPolygon">TLazRegion.AddPolygon</link>
<link id="#rtl.types.TPoint">TPoint</link>
</seealso>
</element>

<element name="TGraphicsColor">
<short>
Defines the Integer range type with values that can be used for colors.
</short>
<descr>
<p>
TGraphicsColor is an alias to the range type used for color constants. The 
base type for the definition is dependent on the FPC compiler version used to 
build the LazUtils package.
</p>
<p>
Starting in FPC version 3.2.3, the base type is the TColor type defined in 
the System.UITypes namespace in the FPC run-time library (RTL). For previous 
compiler versions, the base type is the numeric range -$7FFFFFFF-1..$7FFFFFFF.
</p>
<p>
This is done to prevent type conflicts when both System.UITypes and 
LCL/LazUtils units are used.
</p>
</descr>
<seealso>
<link id="#lcl.graphics.TColor">TColor</link>
<!-- link id="#rtl.system.uitypes.TColor"/ -->
</seealso>
</element>

<element name="TGraphicsFillStyle">
<short>Indicates how a surface area is filled with a given color.</short>
<descr>
<p>
Used in widgetset classes to implement the FloodFill routine and method.
</p>
</descr>
<seealso>
<link id="#lcl.graphics.TFillStyle">TFillStyle</link>
</seealso>
</element>
<element name="TGraphicsFillStyle.fsSurface">
<short>
Fills an area where the pixels have the specified color. Fill color is 
applied in all directions to pixels with the specified color. Used to fill an 
area with multiple colors at its boundaries.
</short>
</element>
<element name="TGraphicsFillStyle.fsBorder">
<short>
Fills an area bounded by the specified color. Like the Windows FloodFill 
routine.
</short>
</element>

<element name="TGraphicsBevelCut">
<short>Represents bevel drawing styles.</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsBevelCut.bvNone">
<short>The bevel is not drawn.</short>
</element>
<element name="TGraphicsBevelCut.bvLowered">
<short>The bevel is drawn with a lowered or inset appearance.</short>
</element>
<element name="TGraphicsBevelCut.bvRaised">
<short>The bevel is drawn with a raised or outset appearance.</short>
</element>
<element name="TGraphicsBevelCut.bvSpace">
<short>
The bevel is drawn as a space using the required width, neither inset nor 
outset.
</short>
</element>

<element name="TGraphicsDrawEffect">
<short>
Represents drawing effects which can be applied to graphic elements.
</short>
<descr/>
<seealso/>
</element>
<element name="TGraphicsDrawEffect.gdeNormal">
<short>No drawing effect.</short>
</element>
<element name="TGraphicsDrawEffect.gdeDisabled">
<short>Drawn with a grayed image.</short>
</element>
<element name="TGraphicsDrawEffect.gdeHighlighted">
<short>Drawn with a highlighted image.</short>
</element>
<element name="TGraphicsDrawEffect.gdeShadowed">
<short>Drawn with a shadowed image.</short>
</element>
<element name="TGraphicsDrawEffect.gde1Bit">
<short>1-Bit image (for non-XP windows buttons).</short>
</element>

<element name="TRawImageColorFormat">
<short>Color format for raw image data.</short>
<descr>
<p>
Color format for raw image data. A raw image can contain RGBA or monochrome 
pixels.
</p>
<p>
Higher values means higher intensity. For example: Red=0 means no Red, 
Alpha=0 means transparent.
</p>
</descr>
<seealso/>
</element>
<element name="TRawImageColorFormat.ricfNone">
<short>ricfNone indicates an uninitialized image.</short>
</element>
<element name="TRawImageColorFormat.ricfRGBA">
<short>
Each pixel contains red, green, blue and alpha values. If AlphaPrec=0 then 
there is no alpha channel. Same for RedPrec, GreenPrec and BluePrec.
</short>
</element>
<element name="TRawImageColorFormat.ricfGray">
<short>
Red, Green, and Blue have the same values. Red stores the Gray. AlphaPrec can 
be &gt;0.
</short>
</element>

<element name="TRawImageByteOrder">
<short>The LSB/MSB-first byte order of pixel data.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageByteOrder.riboLSBFirst">
<short>Least Significant Byte first.</short>
</element>
<element name="TRawImageByteOrder.riboMSBFirst">
<short>Most SignificantBbyte first.</short>
</element>

<element name="TRawImageBitOrder">
<short>Bit order for raw image data scan lines.</short>
<descr>
The first pixel in a raw image line can be the left or right pixel of the 
displayed image.
</descr>
<seealso/>
</element>
<element name="TRawImageBitOrder.riboBitsInOrder">
<short>Bit 0 represents first pixel.</short>
</element>
<element name="TRawImageBitOrder.riboReversedBits">
<short>Bit 0 represents highest pixel.</short>

</element>

<element name="TRawImageLineEnd">
<short>The alignment of raw image scanlines.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageLineEnd.rileTight">
<short>
No gap at the end of Scanlines; Scanlines can begin inside a byte boundary.
</short>
</element>
<element name="TRawImageLineEnd.rileByteBoundary">
<short>Scanlines start on a byte boundary.</short>
</element>
<element name="TRawImageLineEnd.rileWordBoundary">
<short>Scanlines start at a 16-bit boundary.</short>
</element>
<element name="TRawImageLineEnd.rileDWordBoundary">
<short>Scanlines start at a 32-bit (DWORD) boundary.</short>
</element>
<element name="TRawImageLineEnd.rileQWordBoundary">
<short>Scanlines start at a 64-bit (QWORD) boundary.</short>
</element>
<element name="TRawImageLineEnd.rileDQWordBoundary">
<short>Scanlines start at a 128-bit boundary.</short>
</element>

<element name="TRawImageLineOrder">
<short>
The first stored line of pixels can represent the logical top or bottom of 
the displayed image.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageLineOrder.riloTopToBottom">
<short>First scanline at the top.</short>
</element>
<element name="TRawImageLineOrder.riloBottomToTop">
<short>First scanline at the bottom.</short>
</element>

<element name="TRawImageQueryFlag">
<short>Image formats supported by a device, or present in image data.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageQueryFlag.riqfMono">
<short>Include a description for a mono image.</short>
</element>
<element name="TRawImageQueryFlag.riqfGrey">
<short>Include a description for a grey image.</short>
</element>
<element name="TRawImageQueryFlag.riqfRGB">
<short>Include a description for an RGB image.</short>
</element>
<element name="TRawImageQueryFlag.riqfAlpha">
<short>Include a description for an Alpha channel.</short>
</element>
<element name="TRawImageQueryFlag.riqfMask">
<short>Include a description for a Mask.</short>
</element>
<element name="TRawImageQueryFlag.riqfPalette">
<short>Include a description for a Palette.</short>
</element>
<element name="TRawImageQueryFlag.riqfUpdate">
<short>Update given description (instead of clearing it).</short>
</element>

<element name="TRawImageQueryFlags">
<short>
Set type used to store values from the TRawImageQueryFlag enumeration.
</short>
<descr>
<p>
Passed as an argument to routines in the LCL interface an widgetset classes. 
Used to determine when the image descriptor for raw image data needs to be 
read from its device context or handle.
</p>
</descr>
<seealso>
<link id="TRawImageQueryFlag"/>
</seealso>
</element>

<element name="TRawImageDescription">
<short>
Descriptor object for the image format of devices and raw (uncompressed) 
image data.
</short>
<descr>
<p>
This effectively is a record with some attached methods. More related 
procedures exist outside the object.
</p>
<p>
The object describes the presence and exact storage of the RGBA image and 
mask pixels, of a device or image. The color information is stored in aligned 
scanlines.
</p>
<p>
Note: palettes, BitOrder and ByteOrder seem not to be implemented yet. The 
meaning of the PaletteXXX values and of BitOrder is undefined, so far.
</p>
<p>
xxxBitsPerPixel and xxxPrecisionMask applies to color data. For masked 
images, the pixels and the mask are two different arrays, containing 
different elements.
</p>
</descr>
<seealso>
<link id="TRawImage"/>
</seealso>
</element>

<element name="TRawImageDescription.Format">
<short>
An initialized image can contain color (RGBA) or monochrome pixels.
</short>
<descr>
<var>ricfNone</var> indicates an uninitialized image.
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.Width">
<short>Width of the image in pixels.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.Height">
<short>Height of the image in pixels.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.Depth">
<short>Number of bits used per pixel.</short>
<descr>
The color and pixel storage can be subject to alignment, so that the logical 
color Depth can be less than the physical BitsPerPixel.
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.BitOrder">
<short>Indicates the bit order for scanlines in the raw image data.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.ByteOrder">
<short>The LSB/MSB-first byte order for color data.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.LineOrder">
<short>
The first stored line of pixels can represent the logical top or bottom of 
the displayed image.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.LineEnd">
<short>Alignment of the scanlines.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.BitsPerPixel">
<short>Number of bits stored per pixel.</short>
<descr>
<var>BitsPerPixel</var> can be greater than the logical (used) 
<var>Depth</var>.
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.RedPrec">
<short>Bits per pixel in the Red channel.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.RedShift">
<short>Bit offset of the Red channel in color data.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.GreenPrec">
<short>Bits per pixel in the Green channel.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.GreenShift">
<short>Bit offset of the Green channel in color data.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.BluePrec">
<short>Bits per pixel in the Blue channel.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.BlueShift">
<short>Bit offset of the Blue channel in color data.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.AlphaPrec">
<short>Bits per pixel in the Alpha channel.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.AlphaShift">
<short>Bit offset of the Alpha channel in color data.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.MaskBitsPerPixel">
<short>Bits per mask pixel, usually 1, 0 when no mask.</short>
<descr>
<p>
Mask-related properties are only valid if there is a mask (MaskBitsPerPixel > 
0).
</p>
<p>
A pixel Mask currently has a logical depth of 1 bit per pixel, but a pixel 
can occupy an entire byte. As opposed to the Alpha (transparency) channel, a 
Mask is stored in its own array. A Mask value of 1 means that the pixel is 
masked (transparent); a value of 0 means the pixel value is shown (opaque).
</p>
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.MaskShift">
<short>The bit offset of the mask bit.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.MaskLineEnd">
<short>Alignment of Mask lines.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.MaskBitOrder">
<short>Bit order of the Mask.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.PaletteColorCount">
<short>Entries in the color palette, 0 when no palette.</short>
<descr>
<p>
Palette-related properties are only valid if there is a palette 
(PaletteColorCount > 0).
</p>
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.PaletteBitsPerIndex">
<short>Bits per palette index, stored in the pixel data.</short>
<descr>
<p>
When a palette is used, the color description fields apply to the palette 
colors, while pixel data contains the palette index. Then Depth applies to 
the size of the palette colors, and the pixel data is described by 
PaletteBitsPerIndex and PaletteShift.
</p>
</descr>
<errors>[ palettes are not yet implemented ]</errors>
<seealso/>
</element>

<element name="TRawImageDescription.PaletteShift">
<short>Bit shift direction from least to most significant.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.PaletteLineEnd">
<short>
Indicates the alignment or padding used at the end of a scanline in the raw 
image data.
</short>
<descr>
<p>
Valid when PaletteColorCount has a positive non-zero value.
</p>
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.PaletteBitOrder">
<short>Bit order of the palette indices.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.PaletteByteOrder">
<short>Byte order of the palette indices.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.Init">
<short>Initialize the image descriptor to all zeroes.</short>
<descr>
<p>
A constructor cannot be used here, it would break compatibility with a record.
</p>
</descr>
<seealso/>
</element>

<element name="TRawImageDescription.Init_BPP1">
<short>1-bit mono format.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageDescription.Init_BPP1.Width">
<short/>
</element>
<element name="TRawImageDescription.Init_BPP1.Height">
<short/>
</element>

<element name="TRawImageDescription.Init_BPP16_R5G6B5">
<short>16-bit format.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageDescription.Init_BPP16_R5G6B5.AWidth">
<short/>
</element>
<element name="TRawImageDescription.Init_BPP16_R5G6B5.AHeight">
<short/>
</element>

<element name="TRawImageDescription.Init_BPP24_R8G8B8_BIO_TTB">
<short>24-bit format with bits in RGB order from top to bottom.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageDescription.Init_BPP24_R8G8B8_BIO_TTB.AWidth">
<short/>
</element>
<element name="TRawImageDescription.Init_BPP24_R8G8B8_BIO_TTB.AHeight">
<short/>
</element>

<element name="TRawImageDescription.Init_BPP24_R8G8B8_BIO_TTB_UpsideDown">
<short>24-bit format with bits in RGB order from bottom to top.</short>
<descr/>
<seealso/>
</element>
<element 
name="RawImageDescription.Init_BPP24_R8G8B8_BIO_TTB_UpsideDown.AWidth">
<short/>
</element>
<element 
name="TRawImageDescription.Init_BPP24_R8G8B8_BIO_TTB_UpsideDown.AHeight">
<short/>
</element>

<element name="TRawImageDescription.Init_BPP32_A8R8G8B8_BIO_TTB">
<short>
32-bit format with an Alpha channel, bits in RGB order from top to bottom.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageDescription.Init_BPP32_A8R8G8B8_BIO_TTB.AWidth">
<short/>
</element>
<element name="TRawImageDescription.Init_BPP32_A8R8G8B8_BIO_TTB.AHeight">
<short/>
</element>

<element name="TRawImageDescription.Init_BPP32_R8G8B8A8_BIO_TTB">
<short>
32-bit format with bits in RGB order plus an Alpha channel, ordered from top 
to bottom.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageDescription.Init_BPP32_R8G8B8A8_BIO_TTB.AWidth">
<short/>
</element>
<element name="TRawImageDescription.Init_BPP32_R8G8B8A8_BIO_TTB.AHeight">
<short/>
</element>

<element name="TRawImageDescription.Init_BPP24_B8G8R8_BIO_TTB">
<short>Init for an unmasked 24 bit RGB image (LSB Blue).</short>
<descr>
<p>Init_BPP24_B8G8R8_BIO_TTB - initiator for specified format</p>
<code>
{ pf24bit:
  Format=ricfRGBA HasPalette=false Depth=24 PaletteColorCount=0
  BitOrder=riboBitsInOrder ByteOrder=DefaultByteOrder
  LineOrder=riloTopToBottom
  BitsPerPixel=24 LineEnd=rileDWordBoundary
  RedPrec=8 RedShift=16 GreenPrec=8 GreenShift=8 BluePrec=8 BlueShift=0
}
</code>
</descr>
</element>

<element name="TRawImageDescription.Init_BPP24_B8G8R8_M1_BIO_TTB">
<short>Init for a masked 24 bit RGB image (LSB Blue).</short>
<descr>
<p>Init_BPP24_B8G8R8_M1_BIO_TTB - initiator for specified format</p>
<code>
  { pf24bit:
    Format=ricfRGBA HasPalette=false Depth=24 PaletteColorCount=0
    BitOrder=riboBitsInOrder ByteOrder=DefaultByteOrder
    LineOrder=riloTopToBottom
    BitsPerPixel=24 LineEnd=rileDWordBoundary
    RedPrec=8 RedShift=16 GreenPrec=8 GreenShift=8 BluePrec=8 BlueShift=0
    Masked
  }
</code>
</descr>
</element>

<element name="TRawImageDescription.Init_BPP32_B8G8R8_BIO_TTB">
<short>Init for an unmasked 32 bit RGB image (LSB blue).</short>
<descr>
<p>
<var>Init_BPP32_B8G8R8_BIO_TTB</var> - initiator for specified format</p>
<code>
{ pf32bit:
    Format=ricfRGBA HasPalette=false Depth=24 PaletteColorCount=0
    BitOrder=riboBitsInOrder ByteOrder=DefaultByteOrder
    LineOrder=riloTopToBottom
    BitsPerPixel=32 LineEnd=rileDWordBoundary
    RedPrec=8 RedShift=16 GreenPrec=8 GreenShift=8 BluePrec=8 BlueShift=0
    No alpha
    No mask
}
</code>
</descr>
</element>

<element name="TRawImageDescription.Init_BPP32_B8G8R8_M1_BIO_TTB">
<short>Init for a masked 32 bit RGB image (LSB blue).</short>
<descr>
<p>
<var>Init_BPP32_B8G8R8_M1_BIO_TTB</var> - initiator for specified format.
</p>
<code>
  { pf32bit:
    Format=ricfRGBA HasPalette=false Depth=24 PaletteColorCount=0
    BitOrder=riboBitsInOrder ByteOrder=DefaultByteOrder
    LineOrder=riloTopToBottom
    BitsPerPixel=32 LineEnd=rileDWordBoundary
    RedPrec=8 RedShift=16 GreenPrec=8 GreenShift=8 BluePrec=8 BlueShift=0
    no alpha
    with mask
  }
</code>
</descr>
</element>

<element name="TRawImageDescription.Init_BPP32_B8G8R8A8_BIO_TTB">
<short>Init for an unmasked 32 bit RGBA image (LSB blue).</short>
<descr>
<p>
<var>Init_BPP32_B8G8R8A8_BIO_TTB</var> - initiator for specified format.
</p>
<code>
  { pf32bit:
    Format=ricfRGBA HasPalette=false Depth=32 PaletteColorCount=0
    BitOrder=riboBitsInOrder ByteOrder=DefaultByteOrder
    LineOrder=riloTopToBottom
    BitsPerPixel=32 LineEnd=rileDWordBoundary
    RedPrec=8 RedShift=16 GreenPrec=8 GreenShift=8 BluePrec=8 BlueShift=0
    alpha
    no mask
  }
</code>
</descr>
</element>

<element name="TRawImageDescription.Init_BPP32_B8G8R8A8_M1_BIO_TTB">
<short>Init for a masked 32 bit RGBA image (LSB blue).</short>
<descr>
<p>
<var>Init_BPP32_B8G8R8A8_M1_BIO_TTB</var> - initiator for specified format.
</p>
<code>
  { pf32bit:
    Format=ricfRGBA HasPalette=false Depth=32 PaletteColorCount=0
    BitOrder=riboBitsInOrder ByteOrder=DefaultByteOrder
    LineOrder=riloTopToBottom
    BitsPerPixel=32 LineEnd=rileDWordBoundary
    RedPrec=8 RedShift=16 GreenPrec=8 GreenShift=8 BluePrec=8 BlueShift=0
    alpha
    masked
  }
</code>
</descr>
</element>

<element name="TRawImageDescription.GetDescriptionFromMask">
<short>
Returns an monochrome image descriptor constructed from the Mask.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.GetDescriptionFromAlpha">
<short>
Returns an monochrome image descriptor constructed from the Alpha channel.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.GetRGBIndices">
<short>Gets the indices of channels in four-element array.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageDescription.GetRGBIndices.Ridx">
<short/>
</element>
<element name="TRawImageDescription.GetRGBIndices.Gidx">
<short/>
</element>
<element name="TRawImageDescription.GetRGBIndices.Bidx">
<short/>
</element>
<element name="TRawImageDescription.GetRGBIndices.Aidx">
<short/>
</element>

<element name="TRawImageDescription.BytesPerLine">
<short>The number of bytes per scanline.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.BitsPerLine">
<short>The number of bits per scanline.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.MaskBytesPerLine">
<short>The number of bytes per Mask scanline.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.MaskBitsPerLine">
<short>The number of bits per Mask scanline.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.AsString">
<short>The image descriptor as a string.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageDescription.IsEqual">
<short>
Compares with the given description, returns <b>True</b> if it is equal.
</short>
<descr/>
<seealso/>
</element>

<element name="PRawImageDescription">
<short>Pointer to <link id="TRawImageDescription"/></short>
<descr/>
<seealso/>
</element>

<element name="TRawImagePosition">
<short>Record describing a position in Raw Image data.</short>
<descr>
<p>
Byte is the byte offset, Bit the bit number/offset in that byte.
</p>
</descr>
<seealso/>
</element>

<element name="TRawImagePosition.Byte">
<short/>
<descr/>
<seealso/>
</element>

<element name="TRawImagePosition.Bit">
<short/>
<descr/>
<seealso/>
</element>

<element name="PRawImagePosition">
<short>
<var>PRawImagePosition</var> - pointer to a <var>TRawImagePosition</var>.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage">
<short>An uncompressed graphics image (bitmap).</short>
<descr>
<p>
This object hold the pixels, mask and color palette of the image, as well as 
a detailed <link id="TRawImageDescription">description</link> of the storage 
format of these parts.
</p>
<p>
This object currently is subject to refactoring, don't use it in application 
code.
</p>
</descr>
<seealso/>
</element>

<element name="TRawImage.Description">
<short>
<var>Description</var> record for the Raw Image.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.Data">
<short>
<var>Data</var> - a pointer to the actual data of the image.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.DataSize">
<short><var>DataSize</var> - pointer to the size of the image.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.Mask">
<short><var>Mask</var> - pointer to the Mask for use with the image.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.MaskSize">
<short><var>MaskSize</var> - pointer to the size of the mask.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.Palette">
<short>
<var>Palette</var> - pointer to the palette of colors for this image.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.PaletteSize">
<short>
<var>PaletteSize</var> - pointer to the size of the palette.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.Init">
<short>
<var>Init</var> - initiator for the object. Don't use a constructor here, it 
will break compatibility with a record.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.CreateData">
<short>
<var>CreateData</var> - method to create the data for the record.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImage.CreateData.AZeroMem">
<short/>
</element>

<element name="TRawImage.FreeData">
<short>Destroys the allocated Data, Mask and Palette arrays.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.ReleaseData">
<short>
<var>ReleaseData</var> - frees the resources when finished with the data.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImage.ExtractRect">
<short>
<var>ExtractRect</var> - find the position of the bounding rectangle from the 
raw data.
</short>
</element>
<element name="TRawImage.ExtractRect.ARect">
<short/>
</element>
<element name="TRawImage.ExtractRect.ADst">
<short/>
</element>

<element name="TRawImage.GetLineStart">
<short>
Gets a pointer to the byte position at the beginning of the specified 
scanline.
</short>
<descr>
<p>
The return value is Nil if Data has not been assigned in the class instance, 
and when the ALine argument contains 0 (zero). The pointer position is 
calculated as the product of ALine and the BytesPerLine setting in the image 
Description.
</p>
</descr>
<seealso/>
</element>
<element name="TRawImage.GetLineStart.Result">
<short/>
</element>
<element name="TRawImage.GetLineStart.ALine">
<short/>
</element>

<element name="TRawImage.PerformEffect">
<short>
<var>PerformEffect</var> - applies a specified special effect to the data of 
the Raw Image.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImage.PerformEffect.ADrawEffect">
<short/>
</element>
<element name="TRawImage.PerformEffect.CreateNewData">
<short/>
</element>
<element name="TRawImage.PerformEffect.FreeOldData">
<short/>
</element>

<element name="TRawImage.ReadBits">
<short>
<var>ReadBits</var> - reads the bit values for the raw image data at a given 
position.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImage.ReadBits.APosition">
<short/>
</element>
<element name="TRawImage.ReadBits.APrec">
<short/>
</element>
<element name="TRawImage.ReadBits.AShift">
<short/>
</element>

<element name="TRawImage.ReadChannels">
<short>
Reads the Red, Green, Blue and Alpha channel values at a given position in 
pixel data.
</short>
</element>
<element name="TRawImage.ReadChannels.APosition">
<short/>
</element>
<element name="TRawImage.ReadChannels.ARed">
<short/>
</element>
<element name="TRawImage.ReadChannels.AGreen">
<short/>
</element>
<element name="TRawImage.ReadChannels.ABlue">
<short/>
</element>
<element name="TRawImage.ReadChannels.AAlpha">
<short/>
</element>

<element name="TRawImage.ReadMask">
<short>
Reads the Mask value at the given position in the image data.
</short>
<descr>
<p>
Reads the Mask value at the given position in the image data. Returns 
AMask=True if the pixel is transparent. The position in the Mask data 
typically differs from the position in the color data.
</p>
</descr>
<seealso/>
</element>
<element name="TRawImage.ReadMask.APosition">
<short/>
</element>
<element name="TRawImage.ReadMask.AMask">
<short/>
</element>

<element name="TRawImage.WriteBits">
<short>Writes ABits into Data at the given position.</short>
<descr/>
<seealso/>
</element>
<element name="TRawImage.WriteBits.APosition">
<short/>
</element>
<element name="TRawImage.WriteBits.APrec">
<short/>
</element>
<element name="TRawImage.WriteBits.AShift">
<short/>
</element>
<element name="TRawImage.WriteBits.ABits">
<short/>
</element>

<element name="TRawImage.WriteChannels">
<short>
<var>WriteChannels</var> - writes the specified channel values at the 
nominated position.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImage.WriteChannels.APosition">
<short/>
</element>
<element name="TRawImage.WriteChannels.ARed">
<short/>
</element>
<element name="TRawImage.WriteChannels.AGreen">
<short/>
</element>
<element name="TRawImage.WriteChannels.ABlue">
<short/>
</element>
<element name="TRawImage.WriteChannels.AAlpha">
<short/>
</element>

<element name="TRawImage.WriteMask">
<short>
Writes the mask for the raw image when assigned and given a valid bit depth 
in the image description.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImage.WriteMask.APosition">
<short/>
</element>
<element name="TRawImage.WriteMask.AMask">
<short/>
</element>

<element name="TRawImage.IsMasked">
<short>
<var>IsMasked</var> - returns <b>True</b> if the specified pixels are masked.
</short>
</element>
<element name="TRawImage.IsMasked.Result">
<short/>
</element>
<element name="TRawImage.IsMasked.ATestPixels">
<short/>
</element>

<element name="TRawImage.IsTransparent">
<short>
<var>IsTransparent</var> - returns <b>True</b> if the specified pixels are 
transparent.
</short>
</element>
<element name="TRawImage.IsTransparent.Result">
<short/>
</element>
<element name="TRawImage.IsTransparent.ATestPixels">
<short/>
</element>

<element name="TRawImage.IsEqual">
<short>
<var>IsEqual</var> - returns <b>True</b> if the current and specified images 
are equal.</short>
</element>
<element name="TRawImage.IsEqual.Result">
<short/>
</element>
<element name="TRawImage.IsEqual.AImage">
<short/>
</element>

<element name="PRawImage">
<short>
<var>PRawImage</var> - pointer to a <var>TRawImage</var>.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageLineStarts">
<short>
<var>TRawImageLineStarts</var> - contains a list of the start positions of 
the lines in the Raw Image.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageLineStarts.FWidth"/>
<element name="TRawImageLineStarts.FHeight"/>
<element name="TRawImageLineStarts.FBitsPerPixel"/>
<element name="TRawImageLineStarts.FLineEnd"/>
<element name="TRawImageLineStarts.FLineOrder"/>

<element name="TRawImageLineStarts.Positions">
<short>The array of start positions for scanlines in a raw image.</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageLineStarts.Init">
<short>
<var>Init</var> - initiator for the object. Don't use a constructor here, it 
will break compatibility with a record.
</short>
<descr/>
<seealso/>
</element>

<element name="TRawImageLineStarts.GetPosition">
<short>
<var>GetPosition</var> - returns the position specified by x, y coordinates 
as a <var>TRawImagePosition</var>.
</short>
<descr/>
<seealso/>
</element>
<element name="TRawImageLineStarts.GetPosition.x">
<short/>
</element>
<element name="TRawImageLineStarts.GetPosition.y">
<short/>
</element>

<element name="PRawImageLineStarts">
<short>
<var>PRawImageLineStarts</var> - pointer to <var>TRawImageLineStarts</var>.
</short>
<descr/>
<seealso/>
</element>

<element name="DefaultByteOrder">
<short>
Byte order for raw image data on the platform or widgetset.
</short>
<descr>
<p>
Value from TRawImageByteOrder with the byte order (Endian-ness) for the 
platform or widgetset.
</p>
</descr>
<seealso/>
</element>

<element name="GetBytesPerLine">
<short>
<var>GetBytesPerLine</var> - returns the number of bytes per line (as a 
pointer).
</short>
<descr/>
<seealso/>
</element>
<element name="GetBytesPerLine.Result">
<short/>
</element>
<element name="GetBytesPerLine.AWidth">
<short/>
</element>
<element name="GetBytesPerLine.ABitsPerPixel">
<short/>
</element>
<element name="GetBytesPerLine.ALineEnd">
<short/>
</element>

<element name="GetBitsPerLine">
<short>
<var>GetBitsPerLine</var> - returns the number of bits per line (as a 
pointer).
</short>
<descr/>
<seealso/>
</element>
<element name="GetBitsPerLine.Result">
<short/>
</element>
<element name="GetBitsPerLine.AWidth">
<short/>
</element>
<element name="GetBitsPerLine.ABitsPerPixel">
<short/>
</element>
<element name="GetBitsPerLine.ALineEnd">
<short/>
</element>

<element name="CopyImageData">
<short>
<var>CopyImageData</var> - copies data from <var>ASource</var> to 
<var>ADestination</var>, returning <b>True</b> if successful.
</short>
<descr/>
<seealso/>
</element>
<element name="CopyImageData.Result">
<short/>
</element>
<element name="CopyImageData.AWidth">
<short/>
</element>
<element name="CopyImageData.AHeight">
<short/>
</element>
<element name="CopyImageData.ARowStride">
<short/>
</element>
<element name="CopyImageData.ABPP">
<short/>
</element>
<element name="CopyImageData.ASource">
<short/>
</element>
<element name="CopyImageData.ARect">
<short/>
</element>
<element name="CopyImageData.ASourceOrder">
<short/>
</element>
<element name="CopyImageData.ADestinationOrder">
<short/>
</element>
<element name="CopyImageData.ADestinationEnd">
<short/>
</element>
<element name="CopyImageData.ADestination">
<short/>
</element>
<element name="CopyImageData.ASize">
<short/>
</element>

<element name="RawImageQueryFlagsToString">
<short>
Converts the specified set of raw image query flags to a String value.
</short>
<descr/>
<seealso/>
</element>
<element name="RawImageQueryFlagsToString.Result">
<short/>
</element>
<element name="RawImageQueryFlagsToString.AFlags">
<short/>
</element>

<element name="MissingBits">
<short>
Used to pad bit data in a raw image to a specific precision and byte 
boundaries.
</short>
<descr>
<p>
Used to pad bit data in a raw image to a specific precision and byte 
boundaries.
</p>
</descr>
<seealso/>
</element>

<element name="DisabledDrawEffectStyle">
<short>Controls the appearance of disabled images.</short>
<descr>
<p>
This variable controls how <link id="TRawImage.PerformEffect"/> represents 
<link id="TGraphicsDrawEffect">gdeDisabled</link>. 
Applications should set it based on the background color for their interfaces.
</p>
</descr>
</element>
<element name="DisabledDrawEffectStyle.ddesGrayscale">
<short>Convert RGB values to grayscale.</short>
</element>
<element name="DisabledDrawEffectStyle.ddesDarken">
<short>Convert to black with alpha representing grayscale.</short>
</element>
<element name="DisabledDrawEffectStyle.ddesLighten">
<short>Convert to white with alpha representing grayscale.</short>
</element>
</module>
<!-- GraphType -->
</package>
</fpdoc-descriptions>
