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.
Topik terkait
-
Konseptual
-
Sumber Daya Lainnya