目次 - SDL 3.0 API(機能別) - ピクセル形式と変換
ピクセル形式と変換
概要
SDLはピクセル操作の機能を提供している.
これらの機能は主にこのビットは何を表しているか等のピクセル形式を扱う.
ピクセルを赤, 緑, 青, さらにα値(透明度)の組み合わせとしたいだけならば非常に簡単で, 多くの場合はこれで充分である.
しかし, 実際のピクセルの定義はより複雑である:
ピクセルは特定の色空間で表される.
色空間は表色系で異なる.
SDLは2つの表色系, RGBとYCbCr(SDLではYUVとも呼ばれる)を認識する.
RGB系には赤, 緑, 青の色チャネルがあり, これらを合わせて画面上の色とする.
https://ja.wikipedia.org/wiki/RGB
YCbCr系は色を輝度と赤・青彩度のオフセット値として表す.
この表色系は人間の目は色よりも明るさに対して敏感であることを利用している.
通常, CbとCrは輝度よりも低い分解能として圧縮されている.
https://ja.wikipedia.org/wiki/YUV
色情報がYCbCrで圧縮されている場合, ピクセルのYには完全な分解能があり, CrとCbはYブロックの色情報の平均値で表される.
彩度位置は色情報のピクセル上のブロック位置を決める.
色範囲はピクセルをディスプレイ上の色に変換する場合に, どの程度ピクセルを使用するかを決める.
完全な色範囲を使用した場合, ピクセルのビット数が表せる範囲の全体が有効になる.
狭めた色範囲を使用した場合, 歴史的な理由で, ピクセルは色を表すために数値の一部のみを使用する.
原色と白色点は, 標準XYZ色空間に対する色空間における色を定義する.
https://ja.wikipedia.org/wiki/CIE_1931_色空間
伝送特性, または光電伝達関数(OETF)は, 色を線形空間から非線形空間の出力信号に数学的に変換する方法である.
https://ja.wikipedia.org/wiki/Rec._709#伝達特性
行列係数はYCbCr表色系とRGB表色系の変換に使用される.
関数
- SDL_CreatePalette
- SDL_DestroyPalette
- SDL_GetMasksForPixelFormat
- SDL_GetPixelFormatDetails
- SDL_GetPixelFormatForMasks
- SDL_GetPixelFormatName
- SDL_GetRGB
- SDL_GetRGBA
- SDL_MapRGB
- SDL_MapRGBA
- SDL_MapSurfaceRGB
- SDL_MapSurfaceRGBA
- SDL_SetPaletteColors
構造体
- SDL_Color
- SDL_FColor
- SDL_Palette
- SDL_PixelFormatDetails
列挙体
- SDL_ArrayOrder
- SDL_BitmapOrder
- SDL_ChromaLocation
- SDL_ColorPrimaries
- SDL_ColorRange
- SDL_Colorspace
- SDL_ColorType
- SDL_MatrixCoefficients
- SDL_PackedLayout
- SDL_PackedOrder
- SDL_PixelFormat
- SDL_PixelType
- SDL_TransferCharacteristics
マクロ
- SDL_ALPHA_OPAQUE
- SDL_ALPHA_OPAQUE_FLOAT
- SDL_ALPHA_TRANSPARENT
- SDL_ALPHA_TRANSPARENT_FLOAT
- SDL_BITSPERPIXEL
- SDL_BYTESPERPIXEL
- SDL_COLORSPACECHROMA
- SDL_COLORSPACEMATRIX
- SDL_COLORSPACEPRIMARIES
- SDL_COLORSPACERANGE
- SDL_COLORSPACETRANSFER
- SDL_COLORSPACETYPE
- SDL_DEFINE_COLORSPACE
- SDL_DEFINE_PIXELFORMAT
- SDL_DEFINE_PIXELFOURCC
- SDL_ISCOLORSPACE_FULL_RANGE
- SDL_ISCOLORSPACE_LIMITED_RANGE
- SDL_ISCOLORSPACE_MATRIX_BT2020_NCL
- SDL_ISCOLORSPACE_MATRIX_BT601
- SDL_ISCOLORSPACE_MATRIX_BT709
- SDL_ISPIXELFORMAT_10BIT
- SDL_ISPIXELFORMAT_ALPHA
- SDL_ISPIXELFORMAT_ARRAY
- SDL_ISPIXELFORMAT_FLOAT
- SDL_ISPIXELFORMAT_FOURCC
- SDL_ISPIXELFORMAT_INDEXED
- SDL_ISPIXELFORMAT_PACKED
- SDL_PIXELFLAG
- SDL_PIXELLAYOUT
- SDL_PIXELORDER
- SDL_PIXELTYPE
SDL Wikiへのリンク
SDL3/CategoryPixels - SDL Wiki