Gambaran umum format piksel asli

Topik ini memperkenalkan format piksel yang disediakan oleh Komponen Pencitraan Windows (WIC).

Format piksel menjelaskan tata letak memori setiap piksel dalam bitmap. Tata letak memori ini menjelaskan bagaimana data gambar bitmap dikodekan dengan menentukan format numerik dan organisasi saluran warna. WIC mendukung beberapa format numerik untuk beberapa skema organisasi saluran warna, menyediakan berbagai format piksel.

Kedalaman bit

Kedalaman bit adalah jumlah bit yang digunakan untuk mengodekan setiap saluran warna. Saat ini, sebagian besar gambar digital menggunakan kedalaman bit 8, yang berarti bahwa setiap saluran warna dalam piksel diwakili oleh 8 bit, menyediakan nilai unik 2⁸ (256) per saluran. Gambar yang memiliki kedalaman bit 8 dan tiga saluran warna (seperti merah, hijau, dan biru) menggunakan 24 bit per piksel (bpp), yang menyediakan 2²⁴ (16.777.216) warna yang berbeda per piksel.

Untuk resolusi warna yang lebih baik, kedalaman bit 16 atau 32 dapat digunakan. Ini menyediakan setiap saluran warna dengan nilai unik 2¹⁶ (65.536) atau 2³², dengan biaya lebih banyak memori per piksel.

Dalam beberapa format, kedalaman bit bukan kelipatan 8. Format ini disebut format yang dikemas , karena saluran warna dalam piksel tidak selaras dengan batas byte. Misalnya, jika kedalaman bit 5, tiga saluran warna dapat disimpan dalam 16 bit (termasuk 1 bit padding, untuk membuat piksel selaras byte). Format yang dikemas berguna ketika memori atau daya pemrosesan terbatas.

Pengodean numerik

Untuk sebagian besar gambar digital saat ini, byte yang tidak ditandatangani dan bilangan bulat pendek yang tidak ditandatangani digunakan untuk menggambarkan rentang numerik dari setiap saluran warna. Nilai minimum (0) mewakili intensitas nol dalam satu saluran warna, dan hitam dicapai ketika semua saluran warna nol. Demikian pula, nilai maksimum mewakili intensitas penuh, dan putih dicapai ketika semua saluran warna berada pada intensitas penuh. Pada kedalaman bit 8, UINT menyediakan 256 nilai unik per saluran warna (0 - 255). UINT 16-bit menyediakan 65.536 nilai unik per saluran warna (0 - 65.535).

Selain itu, WIC mendukung format titik tetap dan floating-point. Format ini mendukung rentang dinamis yang lebih besar, karena seluruh rentang numerik dari setiap saluran warna lebih besar dari rentang yang terlihat. Akibatnya, warna dapat disesuaikan di atas atau di bawah rentang yang terlihat, selama langkah-langkah perantara pemrosesan gambar, tanpa kehilangan informasi gambar.

Pengodean numerik titik tetap

Nilai titik tetap 16-bit ditafsirkan sebagai s2.13: bit tanda tangan, dua bit bilangan bulat, dan tiga belas bit pecahan. Menggunakan interpretasi ini, rentang numerik −4.0 hingga +3.999... dapat diwakili, dengan nilai 1,0 yang diwakili oleh nilai bilangan bulat yang ditandatangani 8192 (0x2000).

Nilai titik tetap 32-bit ditafsirkan sebagai s7,24: bit tanda tangan, tujuh bit bilangan bulat, dan dua puluh empat bit pecahan. Menggunakan interpretasi ini, rentang numerik −128.0 hingga +127.999... dapat diwakili, dengan nilai 1,0 yang diwakili oleh nilai bilangan bulat yang ditandatangani 16777216 (0x01000000).

Saluran warna

Saluran warna format piksel menentukan tata letak memori setiap warna dalam data gambar bitmap. Ada berbagai struktur saluran warna yang umum dalam gambar digital saat ini, dan WIC memberikan dukungan untuk banyak di antaranya.

Model warna RGB/BGR

Format RGB dan BGR menjelaskan warna dalam model warna aditif. Metode yang paling umum untuk menggambarkan gambar adalah dengan tiga saluran warna terpisah yang mewakili warna merah (R), hijau (G), dan biru (B). WIC memberikan dukungan untuk ketiga saluran ini baik dalam urutan merah-hijau-biru (RGB) atau biru-hijau-merah (BGR). Ini adalah urutan di mana setiap saluran warna muncul dalam aliran bit berurutan. Misalnya, dalam format GUID_WICPixelFormat32bppRGB, setiap piksel memiliki lebar 32 bit. Saluran merah adalah byte pertama (paling tidak signifikan) dalam memori, diikuti oleh hijau, dan kemudian biru. Sebaliknya, dalam format GUID_WICPixelFormat32bppBGR, saluran warna berada dalam urutan yang berlawanan. WIC mendukung sejumlah format RGB/BGR, termasuk format bit kemasan khusus seperti GUID_WICPixelFormat16bppBGR555.

Catatan

Saluran warna dari format bit kemasan BGR khusus tidak dalam kelipatan 8 seperti saluran warna dalam format piksel biasa. Ini berarti bahwa nilai saluran tidak diratakan byte. Perawatan harus diambil ketika membaca saluran warna bit yang dikemas.

Selain format RGB dan BGR, WIC juga menyediakan format piksel RGB dan BGR yang mendukung saluran alfa (A). Saluran alfa menyediakan data opasitas untuk piksel. Untuk format dengan saluran alfa tambahan, saluran alfa biasanya hadir terakhir dalam urutan saluran warna. Misalnya, dalam format piksel GUID_WICPixelFormat32bppBGRA, urutan byte berwarna biru, hijau, dan merah, diikuti oleh saluran alfa.

WIC juga mendukung format piksel RGB alfa prakali (P). Dalam format piksel RGBA yang khas, nilai warna merah, hijau, dan biru adalah nilai warna aktual untuk gambar. Untuk membuat gambar komposit dalam format RGBA standar, nilai alfa gambar latar depan harus dikalikan dengan masing-masing saluran merah, hijau, dan biru sebelum menambahkannya ke warna gambar latar belakang. Dalam format piksel alpha RGB yang telah dikalikan sebelumnya, setiap saluran warna telah dikalikan dengan nilai alfa. Ini menyediakan metode komposisi gambar yang lebih efisien dengan data alfa-channel. Untuk mengambil nilai warna benar dari setiap saluran dalam format piksel PRGBA/PBGRA, perkalian saluran alfa harus dibalik dengan membagi nilai warna dengan nilai alfa.

Model warna CMYK

CMYK adalah model warna subtraktif yang digunakan dalam pencetakan. Warna yang dihasilkan oleh model CMYK dihasilkan oleh cahaya yang tidak diserap, tetapi tercermin. CMYK adalah model empat saluran sian (C), magenta (M), kuning (Y), dan hitam (K). Ketika keempat saluran warna berada pada nilai maksimum, hasilnya adalah hitam. Seperti model warna RGB/BGR, urutan byte dalam aliran bit berurutan diberikan oleh nama format piksel. Misalnya, dalam format piksel GUID_WICPixelFormat32bppCMYK, setiap piksel terdiri dari 32 bit. Byte pertama berisi nilai sian, diikuti pada gilirannya oleh magenta, kuning, dan hitam. WIC menyediakan format piksel untuk CMYK pada 32 dan 64 bit per piksel (bpp).

Selain model warna CMYK standar, WIC juga menyediakan CMYK dengan alpha. Ini memungkinkan gambar CMYK memiliki data campuran alfa yang mirip dengan model warna RGB/BGR. Saluran alfa terletak segera setelah hitam dalam aliran bit berurutan dari bitmap.

Model warna n-saluran

Untuk fleksibilitas, WIC juga menyediakan format piksel yang tidak memiliki urutan saluran yang telah ditentukan sebelumnya. WIC menyediakan format piksel yang mendukung dari tiga hingga delapan saluran data gambar berkelanjutan pada kedalaman bit 8 dan 16. Tidak seperti format piksel RGB/BGR dan CMYK, format n-channel tidak menentukan urutan saluran melainkan jumlah saluran warna yang tersedia. Misalnya, dalam format piksel GUID_WICPixelFormat32bpp4Channels, setiap piksel terdiri dari 32 bit dengan masing-masing dari 4 saluran yang menempati satu byte.

WIC juga menyediakan format piksel untuk n-channel dengan alpha. Ini memungkinkan gambar n-channel memiliki data pencambukan alfa yang mirip dengan model warna RGB/BGR dan CMYK. Saluran alfa terletak segera setelah saluran warna terakhir dalam aliran bit berurutan dari bitmap.

Model warna terindeks dan skala abu-abu

Format terindeks menggunakan tabel warna, yang disebut palet. Palet disimpan secara eksternal ke data piksel atau didefinisikan secara implisit. Nilai setiap piksel dalam gambar adalah indeks ke dalam palet. Dengan format terindeks, jumlah bit per piksel terkait langsung dengan jumlah entri dalam palet. Ini secara signifikan mengurangi jumlah data yang diperlukan untuk mewakili gambar, tetapi juga membatasi jumlah warna yang tersedia untuk gambar. WIC mendukung format terindeks dengan 1, 2, 4, atau 8 bpp.

Untuk format monokrom (skala abu-abu), WIC mendukung 1, 2, 4, 8, 16, dan 32 bit per piksel. Untuk kedalaman bit 1, 8, 16, dan 32, data warna disimpan dalam satu saluran. Untuk kedalaman bit 2 atau 4, piksel adalah indeks ke dalam palet skala abu-abu.

Model warna Y'CbCr

WIC menambahkan dukungan untuk model warna JPEG JFIF Y'CbCr. Y'CbCr memisahkan warna menjadi komponen luma (Y') dan dua komponen kroma (Cb dan Cr). Banyak file JPEG secara asli menyimpan data gambar menggunakan model warna Y'CbCr.

Sistem visual manusia kurang sensitif terhadap perubahan klorma daripada pada luma, dan format Y'CbCr dapat memanfaatkan sensitivitas yang berkurang ini dengan mengurangi jumlah data klorma yang disimpan relatif terhadap luma. Mereka mencapai ini dengan menyimpan klorma dan luma ke bidang terpisah dan menskalakan setiap bidang komponen ke resolusi yang berbeda. Praktik ini dikenal sebagai subsampling klorma.

Karena data chroma dan luma disimpan secara terpisah dan mungkin resolusi yang berbeda, WIC mendefinisikan format piksel luma dan klorma terpisah. WIC mendukung data yang 8 bit per saluran.

Format piksel WIC

Format piksel dalam WIC didefinisikan menggunakan GUID untuk menghindari bentrokan dengan IHV. WIC menyediakan nama yang mudah diingat untuk mereferensikan GUID format piksel asli. Konvensi penamaan untuk format piksel WIC adalah sebagai berikut:

[GUID_WICPixelFormat] [Bit Per Piksel] [Urutan Saluran] [Jenis Penyimpanan]

Komponen format Deskripsi
GUID_WICPixelFormat Identifikasi deskriptif untuk semua format piksel WIC. Nama yang mudah diingat untuk semua piksel WIC dimulai dengan string ini.
Bit Per Piksel Jumlah bit per piksel (bpp) yang digunakan untuk format piksel.
Urutan Saluran Model saluran warna dan urutan setiap saluran untuk format .
Jenis Penyimpanan Pengodean numerik yang digunakan untuk format piksel. Pengodean default adalah bilangan bulat yang tidak ditandatangani. Jika tidak ada yang mengikuti informasi model warna, bilangan bulat yang tidak ditandatangani (UINT) tersirat. FixedPoint dan Float digunakan untuk mengidentifikasi format piksel yang masing-masing menggunakan pengodean titik tetap dan floating-point.

Catatan

Untuk format n-channel, [Urutan Saluran] tidak menentukan urutan warna melainkan jumlah saluran yang tersedia. Misalnya, GUID_WICPixelFormat24bpp3Channels menyediakan 3 saluran warna di mana "3Channels" adalah entri [Urutan Saluran], tetapi hanya menunjukkan jumlah saluran dan bukan pesanan.

Misalnya, nama yang mudah diingat GUID_WICPixelFormat24bppRGB berarti format piksel menggunakan 24 bit per piksel dan model warna RGB. Karena namanya tidak secara eksplisit mengidentifikasi jenis penyimpanan, bilangan bulat yang tidak ditandatangani tersirat.

WIC mendukung beberapa format piksel. Tabel berikut mengelompokkan format piksel serupa berdasarkan struktur warna sambil memberikan informasi tambahan seperti kedalaman bit, bit per piksel, dan pengodean numerik. Setiap tabel berisi informasi berikut:

  • Nama yang mudah diingat. Nama yang mudah diingat dari format piksel.
  • Jumlah Saluran. Jumlah saluran warna.
  • Bit Per Saluran. Jumlah bit per saluran (kedalaman bit).
  • Bit Per Piksel. Jumlah bit per piksel, termasuk bit padding apa pun.
  • Jenis Penyimpanan. Pengodean numerik data gambar. Nilai ini bisa berupa bilangan bulat yang tidak ditandatangani (UINT), angka titik tetap (FixedPoint), atau angka titik mengambang (Float).

Catatan

Untuk kejelasan, dokumen ini mengacu pada format piksel hanya dengan nama yang mudah diingat. Nilai heksadesimal aktual untuk format piksel dapat ditemukan dalam file wincodec.h/idl.

Format piksel yang tidak ditentukan

Daftar berikut menunjukkan format piksel generik yang digunakan saat format piksel tidak ditentukan atau tidak penting untuk operasi gambar.

  • GUID_WICPixelFormatUndefined
  • GUID_WICPixelFormatDontCare

Format piksel terindeks

Tabel berikut mencantumkan format piksel terindeks yang disediakan oleh WIC. Dalam format ini, nilai untuk setiap piksel adalah indeks ke dalam palet warna.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat1bppIndexed 1 1 UINT
GUID_WICPixelFormat2bppIndexed 1 2 UINT
GUID_WICPixelFormat4bppIndexed 1 4 UINT
GUID_WICPixelFormat8bppIndexed 1 8 UINT

Format piksel bit yang dikemas

Tabel berikut mencantumkan format bit kemasan yang disediakan oleh WIC. Dalam format ini, data saluran warna tidak diratakan byte.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat16bppBGR555 3 5 16 UINT
GUID_WICPixelFormat16bppBGR565 3 5(B)/6(G)/5(R) 16 UINT
GUID_WICPixelFormat16bppBGRA555 4 5(B)/5(G)/5(R)/1(A) 16 UINT
GUID_WICPixelFormat32bppBGR101010 3 10 32 UINT
GUID_WICPixelFormat32bppRGBA1010102 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppRGBA1010102XR 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppR10G10B10A2 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppR10G10B10A2HDR10 4 10(R)/10(G)/10(B)/2(A) 32 UINT

Untuk format GUID_WICPixelFormat32bppBGR101010 dan GUID_WICPixelFormat32bppRGBA1010102, saluran merah disimpan dalam bit yang paling tidak signifikan. Untuk format GUID_WICPixelFormat32bppR10G10B10A2 dan GUID_WICPixelFormat32bppR10G10B10A2HDR10, saluran merah didefinisikan dalam bit yang paling signifikan, tata letak yang sama dengan DXGI_FORMAT_R10G10B10A2_UNORM.

Format GUID_WICPixelFormat32bppR10G10B10A2HDR10 adalah format piksel 10 bit untuk HDR10 (ruang warna BT.2020 dan SMPTE ST.2084 EOTF).

Format piksel skala abu-abu

Tabel berikut mencantumkan format skala abu-abu yang disediakan oleh WIC. Dalam format ini, data warna mewakili nuansa abu-abu.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormatBlackWhite 1 1 1 UINT
GUID_WICPixelFormat2bppGray 1 2 2 UINT
GUID_WICPixelFormat4bppGray 1 4 4 UINT
GUID_WICPixelFormat8bppGray 1 8 8 UINT
GUID_WICPixelFormat16bppGray 1 16 16 UINT
GUID_WICPixelFormat16bppGrayFixedPoint 1 16 16 FixedPoint
GUID_WICPixelFormat16bppGrayHalf 1 16 16 Float
GUID_WICPixelFormat32bppGrayFloat 1 32 32 Float
GUID_WICPixelFormat32bppGrayFixedPoint 1 32 32 FixedPoint

Format piksel RGB/BGR

Tabel berikut mencantumkan format RGB/BGR yang disediakan oleh WIC. Format ini memisahkan data warna utama menjadi saluran merah (R), hijau (G), dan biru (B). Saluran alfa tambahan (A) disediakan untuk informasi opasitas dalam beberapa format.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat24bppRGB 3 8 24 UINT
GUID_WICPixelFormat24bppBGR 3 8 24 UINT
GUID_WICPixelFormat32bppBGR 3 8 32 UINT
GUID_WICPixelFormat32bppRGBA 4 8 32 UINT
GUID_WICPixelFormat32bppBGRA 4 8 32 UINT
GUID_WICPixelFormat32bppRGBE* 4 8 32 Float
GUID_WICPixelFormat32bppPRGBA 4 8 32 UINT
GUID_WICPixelFormat32bppPBGRA 4 8 32 UINT
GUID_WICPixelFormat48bppRGB 3 16 48 UINT
GUID_WICPixelFormat48bppBGR 3 16 48 UINT
GUID_WICPixelFormat48bppRGBFixedPoint 3 16 48 Diperbaiki
GUID_WICPixelFormat48bppBGRFixedPoint 3 16 48 Diperbaiki
GUID_WICPixelFormat48bppRGBHalf 3 16 48 Float
GUID_WICPixelFormat64bppRGBA 4 16 64 UINT
GUID_WICPixelFormat64bppBGRA 4 16 64 UINT
GUID_WICPixelFormat64bppPRGBA 4 16 64 UINT
GUID_WICPixelFormat64bppPBGRA 4 16 64 UINT
GUID_WICPixelFormat64bppRGBFixedPoint 3 16 64 Diperbaiki
GUID_WICPixelFormat64bppRGBAFixedPoint 4 16 64 Diperbaiki
GUID_WICPixelFormat64bppBGRAFixedPoint 4 16 64 Diperbaiki
GUID_WICPixelFormat64bppRGBHalf 3 16 64 Float
GUID_WICPixelFormat64bppRGBAHalf 4 16 64 Float
GUID_WICPixelFormat96bppRGBFixedPoint 3 32 96 Diperbaiki
GUID_WICPixelFormat128bppRGBFloat 3 32 128 Float
GUID_WICPixelFormat128bppRGBAFloat 4 32 128 Float
GUID_WICPixelFormat128bppPRGBAFloat 4 32 128 Float
GUID_WICPixelFormat128bppRGBFixedPoint 3 32 128 Diperbaiki
GUID_WICPixelFormat128bppRGBAFixedPoint 4 32 128 Diperbaiki

Catatan

*Format GUID_WICPixelFormat32bppRGBE mengodekan tiga nilai floating-point 16-bit dalam 4 byte, sebagai berikut: Tiga mantissa 8-bit yang tidak ditandatangani untuk saluran R, G, dan B, ditambah eksponen 8-bit bersama. Format ini menyediakan presisi floating-point 16-bit dalam representasi piksel yang lebih kecil.

Dimulai dengan Windows 8 dan Pembaruan Platform untuk Windows 7, WIC menyediakan format tambahan, yang ditunjukkan dalam tabel di sini.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat32bppRGB 3 8 32 UINT
GUID_WICPixelFormat64bppRGB 3 16 64 UINT
GUID_WICPixelFormat96bppRGBFloat 3 32 96 FLOAT
GUID_WICPixelFormat64bppPRGBAHalf 4 16 64 FLOAT

Format piksel CMYK

Tabel berikut mencantumkan format CMYK yang disediakan oleh WIC. Format ini memisahkan data warna utama menjadi saluran sian (C), magenta (M), kuning (Y), dan hitam (K).

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat32bppCMYK 4 8 32 UINT
GUID_WICPixelFormat64bppCMYK 4 16 64 UINT
GUID_WICPixelFormat40bppCMYKAlpha 5 8 40 UINT
GUID_WICPixelFormat80bppCMYKAlpha 5 16 80 UINT

Format piksel n-saluran

Tabel berikut mencantumkan format n-saluran yang disediakan oleh WIC. Format ini menyediakan sejumlah saluran warna yang tidak terdefinisi untuk menyimpan data gambar.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat24bpp3Channels 3 8 24 UINT
GUID_WICPixelFormat48bpp3Channels 3 16 48 UINT
GUID_WICPixelFormat32bpp3ChannelsAlpha 4 8 32 UINT
GUID_WICPixelFormat64bpp3ChannelsAlpha 4 16 64 UINT
GUID_WICPixelFormat32bpp4Channels 4 8 32 UINT
GUID_WICPixelFormat64bpp4Channels 4 16 64 UINT
GUID_WICPixelFormat40bpp4ChannelsAlpha 5 8 40 UINT
GUID_WICPixelFormat80bpp4ChannelsAlpha 5 16 80 UINT
GUID_WICPixelFormat40bpp5Channels 5 8 40 UINT
GUID_WICPixelFormat80bpp5Channels 5 16 80 UINT
GUID_WICPixelFormat48bpp5ChannelsAlpha 6 8 48 UINT
GUID_WICPixelFormat96bpp5ChannelsAlpha 6 16 96 UINT
GUID_WICPixelFormat48bpp6Channels 6 8 48 UINT
GUID_WICPixelFormat96bpp6Channels 6 16 96 UINT
GUID_WICPixelFormat56bpp6ChannelsAlpha 7 8 56 UINT
GUID_WICPixelFormat112bpp6ChannelsAlpha 7 16 112 UINT
GUID_WICPixelFormat56bpp7Channels 7 8 56 UINT
GUID_WICPixelFormat112bpp7Channels 7 16 112 UINT
GUID_WICPixelFormat64bpp7ChannelsAlpha 8 8 64 UINT
GUID_WICPixelFormat128bpp7ChannelsAlpha 8 16 128 UINT
GUID_WICPixelFormat64bpp8Channels 8 8 64 UINT
GUID_WICPixelFormat128bpp8Channels 8 16 128 UINT
GUID_WICPixelFormat72bpp8ChannelsAlpha 9 8 72 UINT
GUID_WICPixelFormat144bpp8ChannelsAlpha 9 16 144 UINT

Format piksel khusus alfa

Tabel berikut mencantumkan format Alpha Only yang disediakan oleh WIC. Format ini hanya berisi informasi alfa.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat8bppAlpha 1 8 32 UINT

Format piksel Y'CbCr

Tabel berikut mencantumkan format Y'CbCr yang disediakan oleh WIC. Format ini memisahkan data warna utama menjadi luma (Y), perbedaan kroma biru (Cb), dan perbedaan choma merah (Cr). Perhatikan bahwa format ini dirancang untuk menyimpan data piksel JPEG JFIF Y'CbCr.

Nama yang Mudah Diingat Jumlah Saluran Bit Per Piksel Jenis Penyimpanan
GUID_WICPixelFormat8bppY 1 8 UINT
GUID_WICPixelFormat8bppCb 1 8 UINT
GUID_WICPixelFormat8bppCr 1 8 UINT
GUID_WICPixelFormat16bppCbCr 2 16 UINT

Spasi warna

Format piksel dalam dirinya sendiri tidak memiliki ruang warna. Umumnya, ruang warna adalah interpretasi semantik dari nilai piksel yang bergantung pada konteks bitmap. Beberapa gambar mengidentifikasi konteks warna yang menentukan ruang warna gambar. Hanya dengan tidak adanya konteks warna haruskah ruang warna disimpulkan.

Informasi konteks warna didefinisikan oleh antarmuka IWICColorContext untuk WIC. Untuk mengambil informasi konteks warna untuk bingkai gambar, gunakan metode GetColorContext .

Dengan tidak adanya informasi ruang warna untuk gambar, aturan umum untuk inferensi ruang warna adalah bahwa format UINT RGB dan skala abu-abu menggunakan ruang warna RGB standar (sRGB), sementara format RGB titik tetap dan floating-point dan skala abu-abu menggunakan ruang warna RGB yang diperluas (scRGB). Model warna CMYK menggunakan ruang warna RWOP.

Format gambar asli

Masing-masing codec WIC yang disediakan Windows mendukung subset format piksel WIC. Untuk setiap codec, format dekode yang didukung mungkin berbeda dari format pengodean yang didukung.

Saat mendekode gambar, jika data disimpan secara asli dalam format piksel yang tidak didukung oleh dekoder, data akan dikonversi format yang didukung. Untuk menentukan format piksel output, panggil IWICBitmapFrameDecode::GetPixelFormat.

Saat mengodekan gambar, gunakan IWICBitmapFrameEncode::SetPixelFormat untuk meminta encoder menggunakan format piksel tertentu. Encoder akan mengembalikan format piksel yang didukung terdekat, yang mungkin berbeda dari apa yang diminta.

Tabel berikut menunjukkan format piksel yang didukung oleh masing-masing codec WIC yang disediakan Windows.

Codec asli BMP

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR555
GUID_WICPixelFormat16bppBGR565 GUID_WICPixelFormat16bppBGR565
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat32bppBGR
GUID_WICPixelFormat32bppBGRA* GUID_WICPixelFormat32bppBGRA*
GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat32bppPBGRA
GUID_WICPixelFormat64bppRGBAFixedPoint
GUID_WICPixelFormat64bppBGRAFixedPoint

Catatan

GUID_WICPixelFormat32bppBGRA didukung di Windows 8, dan di Pembaruan Platform untuk Windows 7, dan yang lebih baru.

  • Untuk mengodekan ke format ini, gunakan opsi encoder EnableV5Header32bppBGRA . BMP akan ditulis dengan header BITMAPV5HEADER.
  • Jika file memiliki BITMAPV5HEADER, file akan didekode sebagai GUID_WICPixelFormat32bppBGRA.

Codec asli GIF

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed

Codec asli ICO

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat32bppBGRA

Codec asli JPEG

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppCMYK GUID_WICPixelFormat32bppCMYK

Codec asli PNG

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat2bppIndexed GUID_WICPixelFormat2bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat2bppGray GUID_WICPixelFormat2bppGray
GUID_WICPixelFormat4bppGray GUID_WICPixelFormat4bppGray
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat48bppBGR
GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat64bppBGRA

Codec asli TIFF

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat4bppGray GUID_WICPixelFormat4bppGray
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat32bppGrayFloat GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat40bppCMYKAlpha
GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat64bppPRGBA
GUID_WICPixelFormat64bppCMYK
GUID_WICPixelFormat80bppCMYKAlpha
GUID_WICPixelFormat96bppRGBFloat*
GUID_WICPixelFormat128bppRGBAFloat
GUID_WICPixelFormat128bppPRGBAFloat

Catatan

GUID_ WICPixelFormat96bppRGBFloat hanya didukung di Windows 8, Pembaruan Platform untuk Windows 7, dan yang lebih baru.

Codec asli HEIF

Format khusus kedalaman dan hanya perolehan. GUID format piksel ini memungkinkan penampil foto untuk mengambil representasi alternatif dari gambar HEIF.

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat8bppDepth GUID_WICPixelFormat8bppDepth
GUID_WICPixelFormat8bppGain GUID_WICPixelFormat8bppGain

Codec asli JPEG XR

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR555
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat24bppRGB GUID_WICPixelFormat24bppRGB
GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat32bppBGR
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat48bppRGBFixedPoint GUID_WICPixelFormat48bppRGBFixedPoint
GUID_WICPixelFormat16bppGrayFixedPoint GUID_WICPixelFormat16bppGrayFixedPoint
GUID_WICPixelFormat32bppBGR101010 GUID_WICPixelFormat32bppBGR101010
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat96bppRGBFixedPoint
GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat128bppRGBAFloat
GUID_WICPixelFormat128bppRGBFloat GUID_WICPixelFormat128bppRGBFloat
GUID_WICPixelFormat32bppCMYK GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat64bppRGBAFixedPoint
GUID_WICPixelFormat128bppRGBAFixedPoint GUID_WICPixelFormat128bppRGBAFixedPoint
GUID_WICPixelFormat64bppCMYK GUID_WICPixelFormat64bppCMYK
GUID_WICPixelFormat24bpp3Channels GUID_WICPixelFormat24bpp3Channels
GUID_WICPixelFormat32bpp4Channels GUID_WICPixelFormat32bpp4Channels
GUID_WICPixelFormat40bpp5Channels GUID_WICPixelFormat40bpp5Channels
GUID_WICPixelFormat48bpp6Channels GUID_WICPixelFormat48bpp6Channels
GUID_WICPixelFormat56bpp7Channels GUID_WICPixelFormat56bpp7Channels
GUID_WICPixelFormat64bpp8Channels GUID_WICPixelFormat64bpp8Channels
GUID_WICPixelFormat48bpp3Channels GUID_WICPixelFormat48bpp3Channels
GUID_WICPixelFormat64bpp4Channels GUID_WICPixelFormat64bpp4Channels
GUID_WICPixelFormat80bpp5Channels GUID_WICPixelFormat80bpp5Channels
GUID_WICPixelFormat96bpp6Channels GUID_WICPixelFormat96bpp6Channels
GUID_WICPixelFormat112bpp7Channels GUID_WICPixelFormat112bpp7Channels
GUID_WICPixelFormat128bpp8Channels GUID_WICPixelFormat128bpp8Channels
GUID_WICPixelFormat40bppCMYKAlpha GUID_WICPixelFormat40bppCMYKAlpha
GUID_WICPixelFormat80bppCMYKAlpha GUID_WICPixelFormat80bppCMYKAlpha
GUID_WICPixelFormat32bpp3ChannelsAlpha GUID_WICPixelFormat32bpp3ChannelsAlpha
GUID_WICPixelFormat64bpp7ChannelsAlpha GUID_WICPixelFormat40bpp4ChannelsAlpha
GUID_WICPixelFormat72bpp8ChannelsAlpha GUID_WICPixelFormat48bpp5ChannelsAlpha
GUID_WICPixelFormat64bpp3ChannelsAlpha GUID_WICPixelFormat56bpp6ChannelsAlpha
GUID_WICPixelFormat80bpp4ChannelsAlpha GUID_WICPixelFormat64bpp7ChannelsAlpha
GUID_WICPixelFormat96bpp5ChannelsAlpha GUID_WICPixelFormat72bpp8ChannelsAlpha
GUID_WICPixelFormat112bpp6ChannelsAlpha GUID_WICPixelFormat64bpp3ChannelsAlpha
GUID_WICPixelFormat128bpp7ChannelsAlpha GUID_WICPixelFormat80bpp4ChannelsAlpha
GUID_WICPixelFormat144bpp8ChannelsAlpha GUID_WICPixelFormat96bpp5ChannelsAlpha
GUID_WICPixelFormat64bppRGBAHalf GUID_WICPixelFormat112bpp6ChannelsAlpha
GUID_WICPixelFormat48bppRGBHalf GUID_WICPixelFormat128bpp7ChannelsAlpha
GUID_WICPixelFormat32bppRGBE GUID_WICPixelFormat144bpp8ChannelsAlpha
GUID_WICPixelFormat16bppGrayHalf GUID_WICPixelFormat64bppRGBAHalf
GUID_WICPixelFormat32bppGrayFixedPoint GUID_WICPixelFormat48bppRGBHalf
GUID_WICPixelFormat64bppRGBFixedPoint GUID_WICPixelFormat32bppRGBE
GUID_WICPixelFormat128bppRGBFixedPoint GUID_WICPixelFormat16bppGrayHalf
GUID_WICPixelFormat64bppRGBHalf GUID_WICPixelFormatBlackWhite

Codec asli DDS

Format piksel dekoder Format piksel encoder
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat32bppPBGRA

Catatan

Codec yang disediakan DDS Windows mendukung file DDS yang dikodekan menggunakan nilai DXGI_FORMAT berikut:

  • DXGI_FORMAT_BC1_UNORM
  • DXGI_FORMAT_BC2_UNORM
  • DXGI_FORMAT_BC3_UNORM

Ini didekodekan dan dikodekan sebagai GUID_WICPixelFormat32bppBGRA atau GUID_WICPixelFormat32bppPBGRA. Untuk informasi selengkapnya, lihat Gambaran Umum Format DDS.

ekstensibilitas format piksel

Format gambar kustom dapat menggunakan format piksel yang tidak disediakan secara asli oleh WIC seperti YCbCr (YUV) dan YCCK (Y/Cb/Cr/K). WIC menyediakan model ekstensibilitas yang memungkinkan format piksel bawaan dan add-in untuk bekerja dalam alur pencitraan yang sama. Untuk mengintegrasikan format piksel ini dengan alur pencitraan WIC, Anda harus membuat pengonversi format piksel untuk mengonversi format piksel add-in ke satu atau beberapa format piksel asli. Antarmuka utama untuk membangun pengonversi format adalah IWICFormatConverter.

Konseptual

Gambaran Umum Komponen Pencitraan Windows

GUID WIC dan CLSID

Sumber Daya Lainnya

Cara Menulis CODEC yang Didukung WIC

Gambaran umum format Foto HD