FMX.Types.TPixelFormat
Delphi
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 };
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
enum | public | FMX.Types.pas FMX.Types.hpp |
FMX.Types | FMX.Types |
説明
ビットマップやテクスチャのピクセルごとに色とデータがどうエンコードされているかを指定します。
TPixelFormat では、1 つのピクセルを記述するのに使用されるビット数と色チャネルの物理的な順序を定義しています。
FMX.PixelFormats ユニットはリファクタリングされ、現在では FMX.Types の構成要素(FMX.Types.TPixelFormat)になっています。新しい TPixelFormat の値は、FMX.PixelFormats.TPixelFormat の値とは異なります(より短く少数)。
この列挙型は以下のように解釈されます。
- 列挙型に含まれている文字の順序が、チャネルの物理的な順序になります。
- "R" は赤チャネルを意味します。
- "G" は緑チャネルを意味します。
- "B" は青チャネルを意味します。
- "L" は輝度チャネルを意味します。
- "A" はアルファ チャネルを意味します。
- 末尾に数字がない場合、各成分は 8 ビットになります。
- 例: RGB は、赤チャネルが 8 ビット、緑チャネルが 8 ビット、青チャネルが 8 ビットであることを意味します。
- 末尾に数字がある場合、このビット数は各チャネルに対応します。
- 例: RGBA16 は、赤、緑、青、アルファの各チャネルごとに 16 ビット、全体で 64 ビット(16 + 16 + 16 + 16)であることを意味します。
- ビット数の合計は 8 ビット、16 ビット、32 ビット、64 ビットのいずれかに切り上げられます。
- 例: RGB(8 + 8 + 8 = 24)は 32 ビットになります(32 ビットに切り上げられます)。
- "F" が末尾にある場合は、浮動小数点ピクセル形式になります。そうでない場合は、整数形式になります。
- 通常、FireMonkey では、すべての整数形式が符号なし整数 "正規化" 形式として扱われると仮定します(つまり、最小および最大の整数値がシェーダで 0.0 ~ 1.0 の範囲の数値にマッピングされます)。
- 上記ルールの例外:
- I) BGR_565 は 16 ビット形式(青チャネルと赤チャネルに 5 ビットずつ、緑チャネルに 6 ビット)です。
- II) BGR5_A1 は 16 ビット形式(赤チャネル、緑チャネル、青チャネルに 5 ビットずつ、アルファ チャネルに 1 ビット)です。
- III) BGR10_A2 は 32 ビット形式(赤チャネル、緑チャネル、青チャネルに 10 ビットずつ、アルファ チャネルに 2 ビット)です。
- IV) RGB10_A2 は上記と同じです(ただし、赤チャネル、緑チャネル、青チャネルの物理的な順序が逆になります)。
ピクセル形式の操作や異なるピクセル形式間の変換には、FMX.Types に定義されている以下のルーチンを使用します。
- FMX.Types.PixelToFloat4
- FMX.Types.Float4ToPixel
- FMX.Types.PixelToAlphaColor
- FMX.Types.AlphaColorToPixel
- FMX.Types.ScanlineToAlphaColor
- FMX.Types.AlphaColorToScanline
- FMX.Types.PixelFormatToString
- FMX.Types.FindClosestPixelFormat