LoadedImageSurface 类

定义

表示图像可以下载、解码和加载到的合成图面。 可以使用引用映像源文件的统一资源标识符(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
继承
Object Platform::Object IInspectable LoadedImageSurface
属性
实现

示例

此示例演示如何将图像从本地 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 中的 Windows 映像组件 (WIC) API 提供对图像文件的基础编解码器支持。 有关代码记录的特定图像格式的详细信息,请参阅 本机 WIC 编解码器

使用工厂方法之一,可以从不同类型的图像源创建 LoadedImageSurface 实例,并控制图像解码时的最大大小。 如果未指定最大大小,则图像将解码为其自然大小。

生存期管理

使用工厂方法之一创建 LoadedImageSurface 时,基础图面将立即初始化为0x0大小,图像内容开始从 UI 线程下载和解码。 成功解码图像源后,它会加载到图面上,并在填充图面时触发 LoadCompleted 事件。 在加载过程中,图面将根据图像源的解码大小从0x0调整到其最终大小。

LoadedImageSurface 会自动保留其所有资源,直到其最终引用丢失。 但是,可以通过 Close 方法显式释放其资源。

[!注意] 在 Windows 10 版本 1703 之前,LoadedImageSurface 不可用。 如果你的应用在 Microsoft Visual Studio 中的“minum 平台版本”设置小于本页后面的“要求”块中显示的“引入版本”,则不能使用此类。

属性

DecodedPhysicalSize

获取解码的图像的大小(以物理像素为单位)。

DecodedSize

获取解码的图像的大小(以与设备无关的像素为单位)。

NaturalSize

获取在原始图像源中定义的物理像素的图像的自然大小。

方法

Close()

释放 LoadedImageSurface 和相关资源。

Dispose()

执行与释放、释放或重置非托管资源关联的应用程序定义任务。

StartLoadFromStream(IRandomAccessStream, Size)

将图像加载到 LoadedImageSurface,该 IRandomAccessStream 具有所需最大大小。

StartLoadFromStream(IRandomAccessStream)

从提供的 IRandomAccessStream 中定义的自然大小将图像加载到 LoadedImageSurface

StartLoadFromUri(Uri, Size)

将图像加载到 LoadedImageSurface 提供的统一资源标识符(URI)中,其最大大小。

StartLoadFromUri(Uri)

将图像加载到 LoadedImageSurface 提供的统一资源标识符(URI)中,该标识符位于图像源中定义的自然大小。

事件

LoadCompleted

在下载、解码并加载到基础 ICompositionSurface时发生。

适用于

另请参阅