LoadedImageSurface 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示可将图像下载、解码和加载到的合成图面。 可以使用引用图像源文件的统一资源标识符 (URI) 加载映像,或提供 IRandomAccessStream。
public ref class LoadedImageSurface sealed : IClosable, ICompositionSurface
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 262144)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class LoadedImageSurface final : IClosable, ICompositionSurface
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 262144)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class LoadedImageSurface : System.IDisposable, ICompositionSurface
Public NotInheritable Class LoadedImageSurface
Implements ICompositionSurface, IDisposable
- 继承
- 属性
- 实现
Windows 要求
设备系列 |
Windows 10 Creators Update (在 10.0.15063.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v4.0 中引入)
|
示例
此示例演示如何将图像从本地 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 中应用的“最低平台版本”设置小于本页后面“要求”块中显示的“引入版本”,则不能使用此类。
属性
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 时发生。 |