BitmapFrame Class
Assembly: PresentationCore (in presentationcore.dll)
XML Namespace: http://schemas.microsoft.com/winfx/2006/xaml/presentation
'Declaration Public MustInherit Class BitmapFrame Inherits BitmapSource Implements IUriContext 'Usage Dim instance As BitmapFrame
public abstract class BitmapFrame extends BitmapSource implements IUriContext
public abstract class BitmapFrame extends BitmapSource implements IUriContext
This class is abstract; see Inheritance Hierarchy for derived non-abstract classes usable in XAML.
BitmapFrame provides additional functionality not defined by BitmapSource by providing access to the Thumbnail associated with a particular frame of an image. BitmapFrame also supports the writing of metadata information by using the Metadata property or the CreateInplaceBitmapMetadataWriter method.
Any BitmapFrame returned from a decoder is always frozen. If you require a modifiable copy, you must first create a copy of the BitmapFrame by using the Clone method.
Only Tagged Image File Format (TIFF) and Graphics Interchange Format (GIF) format images support multiple frames.
The following code example demonstrates how to create a new BitmapSource by using a BitmapFrame.
Dim width As Integer = 128 Dim height As Integer = width Dim stride As Integer = CType(width / 8, Integer) Dim pixels(height * stride) As Byte ' Try creating a new image with a custom palette. Dim colors As New List(Of System.Windows.Media.Color)() colors.Add(System.Windows.Media.Colors.Red) colors.Add(System.Windows.Media.Colors.Blue) colors.Add(System.Windows.Media.Colors.Green) Dim myPalette As New BitmapPalette(colors) ' Creates a new empty image with the pre-defined palette Dim image As BitmapSource = System.Windows.Media.Imaging.BitmapSource.Create(width, height, 96, 96, PixelFormats.Indexed1, myPalette, pixels, stride) Dim stream As New FileStream("empty.tif", FileMode.Create) Dim encoder As New TiffBitmapEncoder() Dim myTextBlock As New TextBlock() myTextBlock.Text = "Codec Author is: " + encoder.CodecInfo.Author.ToString() encoder.Frames.Add(BitmapFrame.Create(image)) MessageBox.Show(myPalette.Colors.Count.ToString()) encoder.Save(stream)
The following code example demonstrates how to use the BitmapFrame object to open a Portable Network Graphics (PNG) graphic and write metadata by using the CreateInPlaceBitmapMetadataWriter method.
Dim pngStream As New System.IO.FileStream("smiley.png", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite) Dim pngDecoder As New PngBitmapDecoder(pngStream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default) Dim pngFrame As BitmapFrame = pngDecoder.Frames(0) Dim pngInplace As InPlaceBitmapMetadataWriter = pngFrame.CreateInPlaceBitmapMetadataWriter() If pngInplace.TrySave() = True Then pngInplace.SetQuery("/Text/Description", "Have a nice day.") End If pngStream.Close()
Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.