FMX.Types.TPixelFormat

De Appmethod Libraries
Aller à : navigation, rechercher

Object Pascal

TPixelFormat = (None, RGB, RGBA, BGR, BGRA, RGBA16, BGR_565, BGRA4, BGR4, BGR5_A1, BGR5, BGR10_A2, RGB10_A2, L, LA,
LA4, L16, A, R16F, RG16F, RGBA16F, R32F, RG32F, RGBA32F);

C++

enum class DECLSPEC_DENUM TPixelFormat : unsigned int { None, RGB, RGBA, BGR, BGRA, RGBA16, BGR_565, BGRA4, BGR4, BGR5_A1, BGR5, BGR10_A2, RGB10_A2, L, LA, LA4, L16, A, R16F, RG16F, RGBA16F, R32F, RG32F, RGBA32F };

Propriétés

Type Visibilité  Source Unité  Parent
enum public
FMX.Types.pas
FMX.Types.hpp
FMX.Types FMX.Types

Description

Spécifie la manière dont la couleur et les données sont encodées pour chaque pixel dans un bitmap ou une texture.

TPixelFormat définit le nombre de bits et l'ordre physique des canaux de couleur utilisés pour décrire un pixel.

L'unité FMX.PixelFormats a été refactorée et fait désormais partie de FMX.Types (FMX.Types.TPixelFormat). Les valeurs du nouveau TPixelFormat sont différentes (plus courtes et moins nombreuses) des valeurs de FMX.PixelFormats.TPixelFormat.

La logique d'interprétation des énumérations est la suivante :

  • L'ordre des lettres dans l'énumération est l'ordre physique des canaux :
    • "R" signifie Red (rouge).
    • "G" signifie Green (vert).
    • "B" signifie Blue (bleu).
    • "L" signifie Luminance.
    • "A" signifie Alpha.
  • S'il n'y a aucun nombre à la fin, chaque composant comporte 8 bits.
    Exemple : RGB signifie 8 bits pour rouge, 8 bits pour vert et 8 bits pour bleu.
  • S'il y a nombre à la fin, celui-ci correspond au nombre de bits de chaque canal.
    Exemple : RGBA16 signifie 16 bits pour chacun des canaux rouge, vert, bleu et alpha, soit un total de 64 bits (16 + 16 + 16 + 16).
  • Le nombre total de bits est arrondi à 8, 16, 32 ou 64 bits.
    Exemple : RGB (8 + 8 + 8 = 24) comporte 32 bits (arrondi à 32).
  • Si la lettre "F" apparaît à la fin, cela indique un format de pixel en virgule flottante. Sinon, il s'agit d'un format en valeur entière.
    Dans FireMonkey, nous supposons typiquement que tous les formats en valeur entière sont traités comme des formats "normalisés" de valeurs entières non signées (c'est-à-dire que les valeurs entières les plus basses et les plus élevées sont mappées sur intervalles de 0.0 à 1.0 dans les shaders).
    Les exceptions aux règles ci-dessus sont les suivantes :
I) BGR_565 est un format 16 bits avec 5 bits pour les canaux bleu et rouge, et 6 bits pour le canal vert.
II) BGR5_A1 est un format 16 bits avec 5 bits pour chacun des canaux rouge, vert et bleu, et 1 bit pour le canal Alpha.
III) BGR10_A2 est un format 32 bits avec 10 bits pour chacun des canaux rouge, vert et bleu, et 2 bits pour le canal Alpha.
IV) RGB10_A2 signifie la même chose que ci-dessus (mais l'ordre physique des canaux RGB est inversé).


Pour travailler avec différents formats de pixels et les convertir, utilisez les routines suivantes à partir de FMX.Types :

Voir aussi