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 方法显式释放其资源。

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

属性

DecodedPhysicalSize

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

DecodedSize

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

NaturalSize

获取原始图像源中定义的以物理像素为单位的图像的自然大小。

方法

Close()

释放 LoadedImageSurface 和关联的资源。

Dispose()

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

StartLoadFromStream(IRandomAccessStream)

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

StartLoadFromStream(IRandomAccessStream, Size)

使用所需最大大小从提供的 IRandomAccessStream 将图像加载到 LoadedImageSurface 中。

StartLoadFromUri(Uri)

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

StartLoadFromUri(Uri, Size)

将图像加载到具有所需最大大小的统一资源标识符 (URI) 的 LoadedImageSurface 中。

事件

LoadCompleted

当图像已下载、解码并加载到基础 ICompositionSurface 时发生。

适用于

另请参阅