共用方式為


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::InitializeIWICBitmapFrameEncode::SetSizeIWICBitmapFrameEncode::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

另請參閱

編碼概觀

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode