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 中的 Windows 映像组件 (WIC) API 提供对图像文件的基础编解码器支持。 有关代码记录的特定图像格式的详细信息,请参阅 本机 WIC 编解码器。
使用工厂方法之一,可以从不同类型的图像源创建 LoadedImageSurface 实例,并控制图像解码时的最大大小。 如果未指定最大大小,则图像将解码为其自然大小。
- StartLoadFromUri(Uri)
- StartLoadFromUri(Uri,大小)
- StartLoadFromStream(IRandomAccessStream)
- StartLoadFromStream(IRandomAccessStream, Size)
生存期管理
使用工厂方法之一创建 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时发生。 |