BitmapDecoder 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示位图帧的容器。 每个位图帧是 BitmapSource。 此抽象类为所有派生解码器对象提供一组基本功能。
public ref class BitmapDecoder abstract : System::Windows::Threading::DispatcherObject
public abstract class BitmapDecoder : System.Windows.Threading.DispatcherObject
type BitmapDecoder = class
inherit DispatcherObject
Public MustInherit Class BitmapDecoder
Inherits DispatcherObject
- 继承
- 派生
示例
以下示例演示如何使用 Create(Uri, BitmapCreateOptions, BitmapCacheOption) 该方法为给定图像创建解码器。 图像的第一BitmapFrameImage个用作控件的源。
BitmapDecoder uriBitmap = BitmapDecoder.Create(
new Uri("sampleImages/waterlilies.jpg", UriKind.Relative),
BitmapCreateOptions.None,
BitmapCacheOption.Default);
// Create an image element;
Image uriImage = new Image();
uriImage.Width = 200;
// Set image source.
uriImage.Source = uriBitmap.Frames[0];
Dim uriBitmap As BitmapDecoder = BitmapDecoder.Create(New Uri("sampleImages/waterlilies.jpg", UriKind.Relative), BitmapCreateOptions.None, BitmapCacheOption.Default)
' Create an image element;
Dim uriImage As New Image()
uriImage.Width = 200
' Set image source.
uriImage.Source = uriBitmap.Frames(0)
下面的代码示例演示如何使用内置文件 TiffBitmapDecoder 打开和解码标记图像文件格式 (TIFF) 位图。 生成的BitmapSource结果用作SourceImage元素。
// Open a Stream and decode a TIFF image
Stream imageStreamSource = new FileStream("tulipfarm.tif", FileMode.Open, FileAccess.Read, FileShare.Read);
TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);
BitmapSource bitmapSource = decoder.Frames[0];
// Draw the Image
Image myImage1 = new Image();
myImage1.Source = bitmapSource;
myImage1.Stretch = Stretch.None;
myImage1.Margin = new Thickness(20);
' Open a Stream and decode a TIFF image
Dim imageStreamSource As New FileStream("tulipfarm.tif", FileMode.Open, FileAccess.Read, FileShare.Read)
Dim decoder As New TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default)
Dim bitmapSource As BitmapSource = decoder.Frames(0)
' Draw the Image
Dim myImage1 As New Image()
myImage1.Source = bitmapSource
myImage1.Stretch = Stretch.None
myImage1.Margin = New Thickness(20)
注解
BitmapDecoder 不是 BitmapFrame 本身;而是对象的 BitmapFrame 容器。 BitmapFrame容器中的每个属性可能具有不同的属性,包括不同的大小、分辨率或调色板。
除非选择了特定的编解码器,否则Windows Presentation Foundation (WPF) 使用自动运行时发现来标识图像的格式,并将其与相应的编解码器匹配。 此发现过程允许由独立软件供应商 (ISV) 开发的编解码器由系统自动发现。 若要选择特定的编解码器,应使用派生 BitmapDecoder 或 BitmapEncoder类等 TiffBitmapDecoder 。
标记的图像文件格式 (TIFF) 和图形交换格式 (GIF) 是唯一支持多个帧的图像格式。
构造函数
BitmapDecoder() |
初始化 BitmapDecoder 的新实例。 |
属性
CodecInfo |
获取此编解码器的相关描述信息。 |
ColorContexts |
获取一个值,该值表示与位图关联的颜色配置文件(如果已定义)。 |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
Frames |
获取位图中单个帧的内容。 |
IsDownloading |
获取一个值,该值指示解码器当前是否正在下载内容。 |
Metadata |
获取 BitmapMetadata 的实例,它表示与此位图关联的全局元数据(如果已定义元数据)。 |
Palette |
获取与此解码器关联的 BitmapPalette。 |
Preview |
获取一个 BitmapSource,用于表示此位图的全局预览(如果已定义)。 |
Thumbnail |
获取一个 BitmapSource,用于表示位图的缩略图(如果已定义)。 |
方法
CheckAccess() |
确定调用线程是否可以访问此 DispatcherObject。 (继承自 DispatcherObject) |
Create(Stream, BitmapCreateOptions, BitmapCacheOption) |
用指定的 BitmapDecoder 和 Stream 从 BitmapCreateOptions 创建 BitmapCacheOption。 |
Create(Uri, BitmapCreateOptions, BitmapCacheOption) |
用指定的 BitmapDecoder 和 Uri 从 BitmapCreateOptions 创建 BitmapCacheOption。 |
Create(Uri, BitmapCreateOptions, BitmapCacheOption, RequestCachePolicy) |
用指定的 BitmapDecoder、Uri 和 BitmapCreateOptions 从 BitmapCacheOption 创建一个 RequestCachePolicy。 |
CreateInPlaceBitmapMetadataWriter() |
创建 InPlaceBitmapMetadataWriter 的一个实例,它可以用于更新位图的元数据。 |
Equals(Object) |
确定指定对象是否等于当前对象。 (继承自 Object) |
Finalize() |
在通过垃圾回收回收 BitmapDecoder 之前,释放资源并执行其他清理操作。 |
GetHashCode() |
作为默认哈希函数。 (继承自 Object) |
GetType() |
获取当前实例的 Type。 (继承自 Object) |
MemberwiseClone() |
创建当前 Object 的浅表副本。 (继承自 Object) |
ToString() |
将 BitmapDecoder 的当前值转换为 String。 |
VerifyAccess() |
强制调用线程具有此 DispatcherObject 的访问权限。 (继承自 DispatcherObject) |
事件
DownloadCompleted |
当 BitmapDecoder 完成位图内容下载时发生。 |
DownloadFailed |
在无法下载位图内容时发生。 |
DownloadProgress |
在 BitmapDecoder 下载位图内容有进展时发生。 |