IWICPlanarBitmapFrameEncode::WritePixels 方法 (wincodec.h)
將來源平面的行寫入編碼格式。
語法
HRESULT WritePixels(
UINT lineCount,
[in] WICBitmapPlane *pPlanes,
UINT cPlanes
);
參數
lineCount
類型: UINT
要編碼的行數。 請參閱 WIC Jpeg 特定行數限制的一節。
[in] pPlanes
類型: WICBitmapPlane*
指定每個元件平面編碼的來源緩衝區。
cPlanes
類型: UINT
pPlanes 參數指定的元件平面數目。
傳回值
類型: HRESULT
如果平面和來源矩形不符合需求,這個方法會失敗 並WINCODEC_ERR_IMAGESIZEOUTOFRANGE。
如果 IWICBitmapSource 格式不符合編碼器需求,這個方法會失敗 並WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT。
備註
後續 的 WritePixels 呼叫會假設循序將掃描線新增至輸出影像。 必須先呼叫 IWICBitmapFrameEncode::Initialize、 IWICBitmapFrameEncode::SetSize 和 IWICBitmapFrameEncode::SetPixelFormat ,否則此方法將會失敗。
透過 IWICBitmapFrameEncode::SetPixelFormat 和編解碼器特定的編碼參數所設定的交錯圖元格式會決定支援的平面格式。
WIC JPEG 編碼器:QueryInterface 可用來從 WIC JPEG IWICBitmapFrameEncode 實作取得此介面。 使用此方法以 WIC JPEG 編碼器編碼 Y'CbCr 數據時,可以在畫面建立期間使用編碼器選項來設定 chroma 子取樣。 如需詳細資訊,請參閱 編碼概觀 和 IWICBitmapEncoder::CreateNewFrame 。
根據設定的 chroma 子取樣,lineCount 參數有下列限制:
Chroma 子取樣 | 行數限制 | 色度平面寬度 | Chroma 平面高度 |
---|---|---|---|
4:2:0 | 2 的倍數,除非呼叫涵蓋影像的最後一個掃描線 | lumaWidth / 2 四捨五入至最接近的整數。 | lumaHeight / 2 四捨五入至最接近的整數。 |
4:2:2 | 任何 | lumaWidth / 2 四捨五入至最接近的整數。 | 任何 |
4:4:4 | 任意 | 任意 | 任意 |
4:4:0 | 2 的倍數,除非呼叫涵蓋影像的最後一個掃描線 | 任何 | llumaHeight / 2 四捨五入至最接近的整數。 |
完整掃描線寬度必須經過編碼,而且點圖來源的寬度必須符合其平面設定。
此外,如果圖元格式是透過 IWICBitmapFrameEncode::SetPixelFormat 設定,則必須GUID_WICPixelFormat24bppBGR。
傳入此方法的點陣圖來源支援的像素格式如下所示:
平面計數 | 平面 1 | 平面 2 | 平面 3 |
---|---|---|---|
3 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat8bppCb | GUID_WICPixelFormat8bppCr |
2 | GUID_WICPixelFormat8bppY | GUID_WICPixelFormat16bppCbCr | N/A |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincodec.h |
程式庫 | Windowscodecs.lib |
Dll | Windowscodecs.dll |