PngBitmapDecoder Class
Defines a decoder for Portable Network Graphics (PNG) encoded images.
System.Windows.Threading.DispatcherObject
System.Windows.Media.Imaging.BitmapDecoder
System.Windows.Media.Imaging.PngBitmapDecoder
Assembly: PresentationCore (in PresentationCore.dll)
The PngBitmapDecoder type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | PngBitmapDecoder(Stream, BitmapCreateOptions, BitmapCacheOption) | Initializes a new instance of PngBitmapDecoder from the specified file stream with the specified createOptions and cacheOption. |
![]() | PngBitmapDecoder(Uri, BitmapCreateOptions, BitmapCacheOption) | Initializes a new instance of PngBitmapDecoder from the specified Uri with the specified createOptions and cacheOption. |
| Name | Description | |
|---|---|---|
![]() | CodecInfo | Gets information that describes this codec. (Inherited from BitmapDecoder.) |
![]() | ColorContexts | Gets a value that represents the color profile associated with a bitmap, if one is defined. (Inherited from BitmapDecoder.) |
![]() | Dispatcher | Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.) |
![]() | Frames | Gets the content of an individual frame within a bitmap. (Inherited from BitmapDecoder.) |
![]() | IsDownloading | Gets a value that indicates if the decoder is currently downloading content. (Inherited from BitmapDecoder.) |
![]() | Metadata | Gets an instance of BitmapMetadata that represents the global metadata associated with this bitmap, if metadata is defined. (Inherited from BitmapDecoder.) |
![]() | Palette | Gets the BitmapPalette associated with this decoder. (Inherited from BitmapDecoder.) |
![]() | Preview | Gets a BitmapSource that represents the global preview of this bitmap, if one is defined. (Inherited from BitmapDecoder.) |
![]() | Thumbnail | Gets a BitmapSource that represents the thumbnail of the bitmap, if one is defined. (Inherited from BitmapDecoder.) |
| Name | Description | |
|---|---|---|
![]() | CheckAccess | Determines whether the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.) |
![]() | CreateInPlaceBitmapMetadataWriter | Creates an instance of InPlaceBitmapMetadataWriter, which can be used to update the metadata of a bitmap. (Inherited from BitmapDecoder.) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | ToString | Converts the current value of a BitmapDecoder to a String. (Inherited from BitmapDecoder.) |
![]() | VerifyAccess | Enforces that the calling thread has access to this DispatcherObject. (Inherited from DispatcherObject.) |
| Name | Description | |
|---|---|---|
![]() | DownloadCompleted | Occurs when a BitmapDecoder has finished downloading bitmap content. (Inherited from BitmapDecoder.) |
![]() | DownloadFailed | Occurs when bitmap content failed to download. (Inherited from BitmapDecoder.) |
![]() | DownloadProgress | Occurs when a BitmapDecoder has made progress downloading bitmap content. (Inherited from BitmapDecoder.) |
The following examples show how to decode and encode a Portable Network Graphics (PNG) image using the specific PngBitmapDecoder and PngBitmapEncoder objects.
This example demonstrates how to decode a PNG image using a PngBitmapDecoder from a FileStream.
// Open a Stream and decode a PNG image Stream imageStreamSource = new FileStream("smiley.png", FileMode.Open, FileAccess.Read, FileShare.Read); PngBitmapDecoder decoder = new PngBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); BitmapSource bitmapSource = decoder.Frames[0]; // Draw the Image Image myImage = new Image(); myImage.Source = bitmapSource; myImage.Stretch = Stretch.None; myImage.Margin = new Thickness(20);
This example demonstrates how to encode a BitmapSource into a PNG image using a PngBitmapEncoder.
int width = 128;
int height = 128;
int stride = width;
byte[] pixels = new byte[height * stride];
// Define the image palette
BitmapPalette myPalette = BitmapPalettes.Halftone256;
// Creates a new empty image with the pre-defined palette
BitmapSource image = BitmapSource.Create(
width,
height,
96,
96,
PixelFormats.Indexed8,
myPalette,
pixels,
stride);
FileStream stream = new FileStream("new.png", FileMode.Create);
PngBitmapEncoder encoder = new PngBitmapEncoder();
TextBlock myTextBlock = new TextBlock();
myTextBlock.Text = "Codec Author is: " + encoder.CodecInfo.Author.ToString();
encoder.Interlace = PngInterlaceOption.On;
encoder.Frames.Add(BitmapFrame.Create(image));
encoder.Save(stream);
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
