Bagikan melalui


Metode IWICPlanarBitmapFrameEncode::WriteSource (wincodec.h)

Menulis baris dari bidang sumber ke format yang dikodekan.

Sintaks

HRESULT WriteSource(
  [in] IWICBitmapSource **ppPlanes,
       UINT             cPlanes,
       WICRect          *prcSource
);

Parameter

[in] ppPlanes

Jenis: IWICBitmapSource**

Menentukan array IWICBitmapSource yang mewakili bidang gambar.

cPlanes

Jenis: UINT

Jumlah bidang komponen yang ditentukan oleh parameter bidang.

prcSource

Jenis: WICRect*

Persegi panjang sumber piksel untuk dikodekan dari bidang IWICBitmapSource . Null menunjukkan seluruh sumber. Lebar rect sumber harus cocok dengan lebar yang diatur melalui SetSize. Panggilan WriteSource berulang dapat dilakukan selama total akumulasi tinggi rect sumber sama dengan yang diatur melalui SetSize.

Mengembalikan nilai

Jenis: HRESULT

Jika bidang dan persegi panjang sumber tidak memenuhi persyaratan, metode ini gagal dengan WINCODEC_ERR_IMAGESIZEOUTOFRANGE.

Jika format IWICBitmapSource tidak memenuhi persyaratan encoder, metode ini gagal dengan WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT.

Keterangan

Panggilan WriteSource berturut-turut diasumsikan secara berurutan menambahkan pemindaian ke gambar output. IWICBitmapFrameEncode::Initialize, IWICBitmapFrameEncode::SetSize dan IWICBitmapFrameEncode::SetPixelFormat harus dipanggil sebelum metode ini atau akan gagal.

Format piksel interleaved yang diatur melalui IWICBitmapFrameEncode::SetPixelFormat dan parameter encode khusus codec menentukan format planar yang didukung.

WIC JPEG Encoder: QueryInterface dapat digunakan untuk mendapatkan antarmuka ini dari implementasi WIC JPEG IWICBitmapFrameEncode . Saat menggunakan metode ini untuk mengodekan data Y'CbCr dengan encoder JPEG WIC, subsampling chroma dapat dikonfigurasi dengan opsi encoder selama pembuatan bingkai. Lihat Gambaran Umum Pengodean dan IWICBitmapEncoder::CreateNewFrame untuk detail selengkapnya.

Bergantung pada subsampling chroma yang dikonfigurasi, parameter lineCount memiliki batasan berikut:

Chroma Subsampling Koordinat X Koordinat Y Lebar Chroma Tinggi Kroma
4:2:0 Kelipatan 2 Kelipatan 2 lumaWidth / 2 Dibulatkan ke atas ke bilangan bulat terdekat. lumaHeight / 2 Dibulatkan ke atas ke bilangan bulat terdekat.
4:2:2 Kelipatan 2 Apa pun lumaWidth / 2 Dibulatkan ke atas ke bilangan bulat terdekat. Apa pun
4:4:4 Apa pun Apa pun Apa pun Apa pun
4:4:0 Apa pun Kelipatan 2 lumaWidth llumaHeight / 2 Dibulatkan ke atas ke bilangan bulat terdekat.
 

Lebar pemindaian penuh harus dikodekan, dan lebar sumber bitmap harus cocok dengan konfigurasi planarnya.

Selain itu, jika format piksel diatur melalui IWICBitmapFrameEncode::SetPixelFormat, format piksel harus GUID_WICPixelFormat24bppBGR.

Format piksel yang didukung dari sumber bitmap yang diteruskan ke metode ini adalah sebagai berikut:

Jumlah Bidang Pesawat 1 Bidang 2 Pesawat 3
3 GUID_WICPixelFormat8bppY GUID_WICPixelFormat8bppCb GUID_WICPixelFormat8bppCr
2 GUID_WICPixelFormat8bppY GUID_WICPixelFormat16bppCbCr T/A

Persyaratan

   
Klien minimum yang didukung Windows 8.1 [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2012 R2 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header wincodec.h
Pustaka Windowscodecs.lib
DLL Windowscodecs.dll

Lihat juga

Gambaran Umum Pengodean

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode