BitmapSource BitmapSource BitmapSource BitmapSource Class

Definition

Provides a source object for properties that use a bitmap-format image source.

public : class BitmapSource : ImageSource, IBitmapSourcepublic class BitmapSource : ImageSource, IBitmapSourcePublic Class BitmapSource Inherits ImageSource Implements IBitmapSource// This API is not available in Javascript.
Inheritance
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Inherited Members

Inherited methods

Inherited properties

Remarks

Important

You don't typically use or create a BitmapSource type directly, that's why you don't see code examples on this page. It's more common to create a BitmapImage and use that as a value. For code examples and more info, see the reference page for BitmapImage.

ImageSource and BitmapSource are intermediate base classes for BitmapImage. For more info on how to create an image source to use for Image.Source and ImageBrush.ImageSource, see Image and ImageBrush and BitmapImage.

BitmapSource derived classes

BitmapSource is the parent class for BitmapImage and WriteableBitmap.

Constructors

BitmapSource() BitmapSource() BitmapSource() BitmapSource()

Provides base class initialization behavior for BitmapSource -derived classes.

protected : BitmapSource()protected BitmapSource()Protected Sub New()// This API is not available in Javascript.

Properties

PixelHeight PixelHeight PixelHeight PixelHeight

Gets the height of the bitmap in pixels.

public : int PixelHeight { get; }public int PixelHeight { get; }Public ReadOnly Property PixelHeight As int// This API is not available in Javascript.
Value
int int int int

The height of the bitmap in pixels.

PixelHeightProperty PixelHeightProperty PixelHeightProperty PixelHeightProperty

Identifies the PixelHeight dependency property.

public : static DependencyProperty PixelHeightProperty { get; }public static DependencyProperty PixelHeightProperty { get; }Public Static ReadOnly Property PixelHeightProperty As DependencyProperty// This API is not available in Javascript.
Value
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

The identifier for the PixelHeight dependency property.

PixelWidth PixelWidth PixelWidth PixelWidth

Gets the width of the bitmap in pixels.

public : int PixelWidth { get; }public int PixelWidth { get; }Public ReadOnly Property PixelWidth As int// This API is not available in Javascript.
Value
int int int int

The width of the bitmap in pixels.

PixelWidthProperty PixelWidthProperty PixelWidthProperty PixelWidthProperty

Identifies the PixelWidth dependency property.

public : static DependencyProperty PixelWidthProperty { get; }public static DependencyProperty PixelWidthProperty { get; }Public Static ReadOnly Property PixelWidthProperty As DependencyProperty// This API is not available in Javascript.
Value
DependencyProperty DependencyProperty DependencyProperty DependencyProperty

The identifier for the PixelWidth dependency property.

Methods

SetSource(IRandomAccessStream) SetSource(IRandomAccessStream) SetSource(IRandomAccessStream) SetSource(IRandomAccessStream)

Sets the source image for a BitmapSource by accessing a stream. Most callers should use SetSourceAsync instead.

public : void SetSource(IRandomAccessStream streamSource)public void SetSource(IRandomAccessStream streamSource)Public Function SetSource(streamSource As IRandomAccessStream) As void// This API is not available in Javascript.
Parameters
streamSource
IRandomAccessStream IRandomAccessStream IRandomAccessStream IRandomAccessStream

The stream source that sets the image source value.

Remarks

Calling SetSource rather than SetSourceAsync has the potential to block the UI thread until the image source file is returned and processed. It is for this reason that we generally recommend calling SetSourceAsync instead of calling SetSource.

In low memory situations (most likely on lower-memory phones), it is possible for an exception to be raised with the message "The image is unrecognized" and an HRESULT of 0x88982F60. While this exception ordinarily indicates bad data, if your app is close to its memory limit then the cause of the exception is likely to be low memory. In that case, we recommend that you free memory and try again.

See Also

SetSourceAsync(IRandomAccessStream) SetSourceAsync(IRandomAccessStream) SetSourceAsync(IRandomAccessStream) SetSourceAsync(IRandomAccessStream)

Sets the source image for a BitmapSource by accessing a stream and processing the result asynchronously.

public : IAsyncAction SetSourceAsync(IRandomAccessStream streamSource)public IAsyncAction SetSourceAsync(IRandomAccessStream streamSource)Public Function SetSourceAsync(streamSource As IRandomAccessStream) As IAsyncAction// This API is not available in Javascript.
Parameters
streamSource
IRandomAccessStream IRandomAccessStream IRandomAccessStream IRandomAccessStream

The stream source that sets the image source value.

Returns

An asynchronous handler called when the operation is complete.

Examples

This example shown here uses a file stream (obtained using a file picker, not shown) to load an image source by calling SetSourceAsync. The file picker, stream and call to SetSourceAsync are all asynchronous. The code shown here comes from a larger code sample, the SDK XAML images sample.

// Ensure the stream is disposed once the image is loaded
using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
     // Set the image source to the selected bitmap
     BitmapImage bitmapImage = new BitmapImage();
     bitmapImage.DecodePixelHeight = decodePixelHeight;
     bitmapImage.DecodePixelWidth = decodePixelWidth;

     await bitmapImage.SetSourceAsync(fileStream);
     Scenario2Image.Source = bitmapImage;
}

Remarks

Setting an image source by calling the asynchronous SetSourceAsync method rather than the similar SetSource method avoids blocking the UI thread. The SetSourceAsync behavior is similar to what the system does internally when you set an image source as a URI in markup: the system doesn't wait to retrieve and decode, but it does run layout again once the image source is available. The markup parsing equivalent doesn't expose the async infrastructure, but the SetSourceAsync method does. For more info on how to use async, await, or how to work with an IAsyncAction value, see Call asynchronous APIs in C# or Visual Basic.

If the app changes the image source again via SetSourceAsync, SetSource or UriSource while a SetSourceAsync call is already in progress, the pending SetSourceAsync action will throw a TaskCanceledException and set the Status to Canceled.

If you have a Microsoft .NET stream that you want to use as a source, you can use the AsRandomAccessStream extension method to convert it to the IRandomAccessStream type that's needed as input for SetSourceAsync.

In low memory situations (most likely on lower-memory phones), it is possible for an exception to be raised with the message "The image is unrecognized" and an HRESULT of 0x88982F60. While this exception ordinarily indicates bad data, if your app is close to its memory limit then the cause of the exception is likely to be low memory. In that case, we recommend that you free memory and try again.

See Also

See Also