Castle Game EngineIntroduction Units Class Hierarchy Classes, Interfaces, Objects and Records Types Variables Constants Functions and Procedures Identifiers |
Class TRGBImage
Unit
CastleImages
Declaration
type TRGBImage = class(TCastleImage)
Description
Image with pixel represented as a TVector3Byte (red, green, blue).
Hierarchy
Overview
Methods
 |
procedure DrawCore(Source: TCastleImage; X, Y, SourceX, SourceY, SourceWidth, SourceHeight: Integer); override; |
 |
class function PixelSize: Cardinal; override; |
 |
class function ColorComponentsCount: Cardinal; override; |
 |
function PixelPtr(const X, Y: Cardinal; const Z: Cardinal = 0): PVector3Byte; |
 |
function RowPtr(const Y: Cardinal; const Z: Cardinal = 0): PArray_Vector3Byte; |
 |
procedure InvertRGBColors; override; |
 |
procedure SetColorRGB(const x, y: Integer; const v: TVector3Single); override; |
 |
procedure Clear(const Pixel: TVector4Byte); override; |
 |
function IsClear(const Pixel: TVector4Byte): boolean; override; |
 |
procedure TransformRGB(const Matrix: TMatrix3Single); override; |
 |
procedure ModulateRGB(const ColorModulator: TColorModulatorByteFunc); override; |
 |
function ToRGBAlphaImage_AlphaDontCare: TRGBAlphaImage; |
 |
function ToRGBAlphaImage_AlphaConst(Alpha: byte): TRGBAlphaImage; |
 |
function ToRGBAlphaImage_AlphaDecide( const AlphaColor: TVector3Byte; Tolerance: Byte; AlphaOnColor: Byte; AlphaOnNoColor: Byte): TRGBAlphaImage; |
 |
function ToRGBFloat: TRGBFloatImage; |
 |
function ToGrayscale: TGrayscaleImage; |
 |
procedure HorizontalLine(const x1, x2, y: Integer; const Color: TVector3Byte); |
 |
procedure HorizontalLine(const x1, x2, y: Integer; const Color: TCastleColor); |
 |
procedure VerticalLine(const x, y1, y2: Integer; const Color: TVector3Byte); |
 |
procedure VerticalLine(const x, y1, y2: Integer; const Color: TCastleColor); |
 |
constructor CreateCombined(const MapImage: TRGBImage; var ReplaceWhiteImage, ReplaceBlackImage: TRGBImage); |
 |
procedure LerpWith(const Value: Single; SecondImage: TCastleImage); override; |
 |
class procedure MixColors(const OutputColor: Pointer; const Weights: TVector4Single; const Colors: TVector4Pointer); override; |
 |
procedure Assign(const Source: TCastleImage); override; |
Properties
Description
Methods
 |
procedure DrawCore(Source: TCastleImage; X, Y, SourceX, SourceY, SourceWidth, SourceHeight: Integer); override; |
|
 |
class function PixelSize: Cardinal; override; |
|
 |
class function ColorComponentsCount: Cardinal; override; |
|
 |
function PixelPtr(const X, Y: Cardinal; const Z: Cardinal = 0): PVector3Byte; |
|
 |
procedure InvertRGBColors; override; |
|
 |
procedure SetColorRGB(const x, y: Integer; const v: TVector3Single); override; |
|
 |
function IsClear(const Pixel: TVector4Byte): boolean; override; |
|
 |
function ToRGBAlphaImage_AlphaDontCare: TRGBAlphaImage; |
Create a new TRGBAlphaImage object with RGB colors copied from this object, but alpha of each pixel is set to some random value (whatever was at that particular memory place at that time).
|
 |
function ToRGBAlphaImage_AlphaDecide( const AlphaColor: TVector3Byte; Tolerance: Byte; AlphaOnColor: Byte; AlphaOnNoColor: Byte): TRGBAlphaImage; |
Like ToRGBAlphaImage_AlphaDontCare, but alpha of every pixel is set to either AlphaOnColor (when color of pixel is equal to AlphaColor with Tolerance, see EqualRGB) or AlphaOnNoColor.
|
 |
function ToRGBFloat: TRGBFloatImage; |
Convert image to an TRGBFloatImage format.
Although float format offers superior precision compared to 8bit RGB, there is a slight chance of some unnoticeable loss of information in such convertion, since floating-point values are involved in calculation.
But generally this conversion is relatively safe (contrary to convertion float -> 8-bit RGB, which must be lossy).
But still you should note that doing such convertion has little sense since float format is useful only when you have colors that can't be expressed as simple 8-bit RGB. But by using this convertion you initially fill float image with data that does not have precision beyond standard 0..255 discreet range for each RGB component...
|
 |
procedure HorizontalLine(const x1, x2, y: Integer; const Color: TVector3Byte); |
Draw horizontal line. Must be y1 <= y2, else it is NOOP.
|
 |
procedure HorizontalLine(const x1, x2, y: Integer; const Color: TCastleColor); |
|
 |
procedure VerticalLine(const x, y1, y2: Integer; const Color: TVector3Byte); |
Draw vertical line. Must be x1 <= x2, else it is NOOP.
|
 |
procedure VerticalLine(const x, y1, y2: Integer; const Color: TCastleColor); |
|
 |
constructor CreateCombined(const MapImage: TRGBImage; var ReplaceWhiteImage, ReplaceBlackImage: TRGBImage); |
Create image by merging two images according to a (third) mask image. This is a very special constructor. It creates image with the same size as MapImage. It also resizes ReplaceWhiteImage, ReplaceBlackImage to the size of MapImage.
Then it inits color of each pixel of our image with combined colors of two pixels on the same coordinates from ReplaceWhiteImage, ReplaceBlackImage, something like
Pixel[x, y] := ReplaceWhiteImage[x, y] * S +
ReplaceBlackImage[x, y] * (S-1);
where S = average of red, gree, blue of color MapImage[x, y].
This means that final image will look like ReplaceWhiteImage in the areas where MapImage is white, and it will look like ReplaceBlackImage in the areas where MapImage is black.
|
 |
procedure LerpWith(const Value: Single; SecondImage: TCastleImage); override; |
|
Properties
Generated by PasDoc 0.13.0 on 2014-10-26 05:15:13
|