共用方式為


IWICPlanarBitmapFrameEncode::WriteSource 方法 (wincodec.h)

將行從來源平面寫入編碼格式。

語法

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

參數

[in] ppPlanes

類型: IWICBitmapSource**

指定代表影像平面的 IWICBitmapSource 陣列。

cPlanes

類型: UINT

平面參數所指定的元件平面數目。

prcSource

類型: WICRect*

要從 IWICBitmapSource 平面編碼的圖元來源矩形。 Null 表示整個來源。 來源矩形寬度必須符合透過 SetSize 設定的寬度。 只要累積的來源矩形高度總計與透過 SetSize設定相同,就可以進行重複的 WriteSource呼叫。

傳回值

類型: HRESULT

如果平面和來源矩形不符合需求,此方法會失敗並 WINCODEC_ERR_IMAGESIZEOUTOFRANGE

如果 IWICBitmapSource 格式不符合編碼器需求,此方法會因為 WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT而失敗。

備註

後續 的 WriteSource 呼叫會假設會循序將掃描線新增至輸出影像。 必須先呼叫 IWICBitmapFrameEncode::InitializeIWICBitmapFrameEncode::SetSizeIWICBitmapFrameEncode::SetPixelFormat ,否則此方法將會失敗。

透過 IWICBitmapFrameEncode::SetPixelFormat 設定 的交錯像素格式,以及編解碼器特定的編碼參數會決定支援的平面格式。

WIC JPEG 編碼器:QueryInterface 可用來從 WIC JPEG IWICBitmapFrameEncode 實作取得此介面。 使用此方法以 WIC JPEG 編碼器編碼 Y'CbCr 資料時,可以在畫面建立期間使用編碼器選項來設定 chroma 子取樣。 如需詳細資訊,請參閱 編碼概觀IWICBitmapEncoder::CreateNewFrame

根據設定的 chroma 子取樣,lineCount 參數有下列限制:

Chroma 子取樣 X 座標 Y 座標 Chroma Width Chroma Height
4:2:0 2 的倍數 2 的倍數 lumaWidth / 2 四捨五入到最接近的整數。 lumaHeight / 2 四捨五入為最接近的整數。
4:2:2 2 的倍數 任意 lumaWidth / 2 四捨五入到最接近的整數。 任意
4:4:4 任意 任意 任意 任意
4:4:0 任意 2 的倍數 lumaWidth 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