PngBitmapDecoder Constructor (Stream, BitmapCreateOptions, BitmapCacheOption)


Initializes a new instance of PngBitmapDecoder from the specified file stream with the specified createOptions and cacheOption.

Namespace:   System.Windows.Media.Imaging
Assembly:  PresentationCore (in PresentationCore.dll)

public PngBitmapDecoder(
	Stream bitmapStream,
	BitmapCreateOptions createOptions,
	BitmapCacheOption cacheOption


Type: System.IO.Stream

The bitmap stream to decode.

Type: System.Windows.Media.Imaging.BitmapCreateOptions

Initialization options for the bitmap image.

Type: System.Windows.Media.Imaging.BitmapCacheOption

The cache method to use for the bitmap image.

Exception Condition

The bitmapStream value is null.


The bitmapStream is not a Portable Network Graphics (PNG) encoded image.

Use the OnLoad cache option if you wish to close the bitmapStream after the decoder is created. The default OnDemand cache option retains access to the stream until the bitmap is needed and cleanup is handled by the garbage collector.

The following code example demonstrates how to create an instance of and use a PngBitmapDecoder from a file stream. The decoded image is used as the source of an Image control.

// Open a Stream and decode a PNG image
Stream^ imageStreamSource = gcnew FileStream("smiley.png", FileMode::Open, FileAccess::Read, FileShare::Read);
PngBitmapDecoder^ decoder = gcnew PngBitmapDecoder(imageStreamSource, BitmapCreateOptions::PreservePixelFormat, BitmapCacheOption::Default);
BitmapSource^ bitmapSource = decoder->Frames[0];

// Draw the Image
Image^ myImage = gcnew Image();
myImage->Source = bitmapSource;
myImage->Stretch = Stretch::None;
myImage->Margin = System::Windows::Thickness(20);

.NET Framework
Available since 3.0
Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft