System.UITypes.TAlphaColorF

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

  TAlphaColorF = record
  public const
    Epsilon = 1.5259E-05; // 1 / 65535, minimal value for TPixelFormat.RGBA16 components
  private
    class function SameComponent(const Value1, Value2: Single): Boolean; static; inline;
    class function ClampComponent(const Value: Single): Single; static; inline;
  public
    R, G, B, A: Single;
    class function Create(const R, G, B: Single; const A: Single = 1): TAlphaColorF; overload; static; inline;
    class function Create(const Color: TAlphaColor): TAlphaColorF; overload; static; inline;
    class operator Add(const Color1, Color2: TAlphaColorF): TAlphaColorF;
    class operator Subtract(const Color1, Color2: TAlphaColorF): TAlphaColorF;
    class operator Equal(const Color1, Color2: TAlphaColorF): Boolean;
    class operator NotEqual(const Color1, Color2: TAlphaColorF): Boolean;
    class operator Negative(const Color: TAlphaColorF): TAlphaColorF;
    class operator Multiply(const Color1, Color2: TAlphaColorF): TAlphaColorF;
    class operator Multiply(const Color: TAlphaColorF; const Factor: Single): TAlphaColorF;
    class operator Multiply(const Factor: Single; const Color: TAlphaColorF): TAlphaColorF; inline;
    class operator Divide(const Color: TAlphaColorF; const Factor: Single): TAlphaColorF; inline;
    function PremultipliedAlpha: TAlphaColorF;
    function UnpremultipliedAlpha: TAlphaColorF;
    function Clamp: TAlphaColorF;
    function ToAlphaColor: TAlphaColor;
  end;

C++

struct DECLSPEC_DRECORD TAlphaColorF
{
public:
    #define TAlphaColorF_Epsilon  (1.525900E-05)
private:
    static bool __fastcall SameComponent(const float Value1, const float Value2);
    static float __fastcall ClampComponent(const float Value);
public:
    float R;
    float G;
    float B;
    float A;
    static TAlphaColorF __fastcall Create(const float R, const float G, const float B, const float A = 1.000000E+00f)/* overload */;
    static TAlphaColorF __fastcall Create(const TAlphaColor Color)/* overload */;
    static TAlphaColorF __fastcall _op_Addition(const TAlphaColorF &Color1, const TAlphaColorF &Color2);
    static TAlphaColorF __fastcall _op_Subtraction(const TAlphaColorF &Color1, const TAlphaColorF &Color2);
    static bool __fastcall _op_Equality(const TAlphaColorF &Color1, const TAlphaColorF &Color2);
    static bool __fastcall _op_Inequality(const TAlphaColorF &Color1, const TAlphaColorF &Color2);
    static TAlphaColorF __fastcall _op_UnaryNegation(const TAlphaColorF &Color);
    static TAlphaColorF __fastcall _op_Multiply(const TAlphaColorF &Color1, const TAlphaColorF &Color2);
    static TAlphaColorF __fastcall _op_Multiply(const TAlphaColorF &Color, const float Factor);
    static TAlphaColorF __fastcall _op_Multiply(const float Factor, const TAlphaColorF &Color);
    static TAlphaColorF __fastcall _op_Division(const TAlphaColorF &Color, const float Factor);
    TAlphaColorF __fastcall PremultipliedAlpha();
    TAlphaColorF __fastcall UnpremultipliedAlpha();
    TAlphaColorF __fastcall Clamp();
    TAlphaColor __fastcall ToAlphaColor();
    friend TAlphaColorF operator +(const TAlphaColorF &Color1, const TAlphaColorF &Color2) { return TAlphaColorF::_op_Addition(Color1, Color2); }
    friend TAlphaColorF operator -(const TAlphaColorF &Color1, const TAlphaColorF &Color2) { return TAlphaColorF::_op_Subtraction(Color1, Color2); }
    friend bool operator ==(const TAlphaColorF &Color1, const TAlphaColorF &Color2) { return TAlphaColorF::_op_Equality(Color1, Color2); }
    friend bool operator !=(const TAlphaColorF &Color1, const TAlphaColorF &Color2) { return TAlphaColorF::_op_Inequality(Color1, Color2); }
    TAlphaColorF operator -() { return TAlphaColorF::_op_UnaryNegation(*this); }
    friend TAlphaColorF operator *(const TAlphaColorF &Color1, const TAlphaColorF &Color2) { return TAlphaColorF::_op_Multiply(Color1, Color2); }
    friend TAlphaColorF operator *(const TAlphaColorF &Color, const float Factor) { return TAlphaColorF::_op_Multiply(Color, Factor); }
    friend TAlphaColorF operator *(const float Factor, const TAlphaColorF &Color) { return TAlphaColorF::_op_Multiply(Factor, Color); }
    friend TAlphaColorF operator /(const TAlphaColorF &Color, const float Factor) { return TAlphaColorF::_op_Division(Color, Factor); }
};

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
record
struct
public
System.UITypes.pas
System.UITypes.hpp
System.UITypes System.UITypes

Beschreibung

TAlphaColorF ist ein Farbtyp, der jede R-, G-, B- und A-Komponente als Gleitkommawert behandelt.

TAlphaColorF wird in Farboperationen verwendet, die eine hohe Genauigkeit erfordern, und behandelt jede R-, G-, B- und A-Komponente als Gleitkommawert. Überladene Operatoren ermöglichen das Addieren, Subtrahieren und Multiplizieren von Farben mit normalen Operationen (z. B. "FinalColor := (FirstColor + SecondColor) / 2").

Früher beruhte die Pixel-Formatkonvertierung auf System.Math.Vectors.TVector3D, das als Farbe behandelt wurde, aber jetzt verwendet die Pixel-Formatkonvertierung dazu die neuen Farbtypen in TVector3D.

Siehe auch