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,大小)
生存期管理
使用工厂方法之一创建 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 时发生。 |