LoadedImageSurface 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示可以下載、譯碼和載入影像的撰寫介面。 您可以使用參考映像來源檔案的統一資源識別碼 (URI) 載入映像,或提供 IRandomAccessStream。
public ref class LoadedImageSurface sealed : ICompositionSurface, IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class LoadedImageSurface final : ICompositionSurface, IClosable
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class LoadedImageSurface : ICompositionSurface, System.IDisposable
Public NotInheritable Class LoadedImageSurface
Implements ICompositionSurface, IDisposable
- 繼承
- 屬性
- 實作
範例
此範例示範如何將影像從本機 URI 載入表面,並將其用於 compositionSurfaceBrush 。
Compositor compositor = new Compositor();
CompositionSurfaceBrush imageBrush = compositor.CreateSurfaceBrush();
LoadedImageSurface loadedSurface = LoadedImageSurface.StartLoadFromUri(new Uri("ms-appx:///Assets/myPic.jpg"), new Size(200.0, 400.0));
// The loadedSurface currently has a size of 0x0 since it has not been downloaded, decoded and loaded to the surface yet
imageBrush.Surface = loadedSurface;
備註
LoadedImageSurface 可從下列圖像檔格式來源:
- 聯合攝影專家組(JPEG)
- 可攜式網路圖形 (PNG)
- 點陣圖 (BMP)
- 圖形交換格式 (GIF)
- 標記的影像檔案格式 (TIFF)
- JPEG XR
- 圖示 (ICO)
[!注意] LoadedImageSurface 不支持動畫 GIF 影像,因此只會顯示動畫 GIF 的第一個畫面。
如果影像來源是數據流,該數據流預期會包含下列其中一種格式的影像檔案。
LoadedImageSurface 編碼和譯碼
Windows 映射元件 (WIC) API 提供圖像檔的基礎編解碼器支援。 如需程式代碼所記載之特定影像格式的詳細資訊,請參閱 原生 WIC 編解碼器。
使用其中一個 Factory 方法,您可以從不同類型的影像來源建立 LoadedImageSurface 實例,並控制影像譯碼的大小上限。 如果未指定大小上限,則影像會譯碼為其自然大小。
- StartLoadFromUri(Uri)
- StartLoadFromUri(Uri, Size)
- StartLoadFromStream(IRandomAccessStream)
- StartLoadFromStream(IRandomAccessStream, Size)
存留期管理
使用其中一個 Factory 方法建立 LoadedImageSurface 時,基礎介面會立即初始化為0x0大小,影像內容會開始下載和譯碼 UI 線程。 當影像來源成功譯碼時,它會載入表面,並在填入表面時引發 LoadCompleted 事件。 在載入過程中,介面會根據影像來源的譯碼大小,從0x0調整為最終大小。
LoadedImageSurface 會自動保留其所有資源,直到失去其最終參考為止。 不過,您可以透過 close 方法
[!注意] Windows 10 版本 1703 之前無法使用 LoadedImageSurface。 如果您的 app 在 Microsoft Visual Studio 中的「最小平臺版本」設定小於此頁面稍後[需求] 區塊中顯示的「引進版本」,您就無法使用此類別。
屬性
DecodedPhysicalSize |
取得實體像素中譯碼影像的大小。 |
DecodedSize |
取得裝置獨立圖元中譯碼影像的大小。 |
NaturalSize |
取得實體圖元中影像的自然大小,其定義於原始影像來源中。 |
方法
Close() |
處置 LoadedImageSurface 和相關資源。 |
Dispose() |
執行與釋放、釋放或重設非受控資源相關聯的應用程式定義工作。 |
StartLoadFromStream(IRandomAccessStream, Size) |
從提供的 IRandomAccessStream,將影像載入 LoadedImageSurface,大小上限。 |
StartLoadFromStream(IRandomAccessStream) |
從提供的 IRandomAccessStream 中定義的自然大小,將影像載入 LoadedImageSurface。 |
StartLoadFromUri(Uri, Size) |
將影像載入 LoadedImageSurface 所提供統一資源識別元 (URI) 中,其大小上限。 |
StartLoadFromUri(Uri) |
從影像來源中所定義之自然大小的統一資源標識碼 (URI) 將影像載入 LoadedImageSurface。 |
事件
LoadCompleted |
在下載、譯碼並載入基礎 ICompositionSurface時發生。 |