BitmapSource.Create Method

Definition

Creates a new BitmapSource that has the specified properties and options.

Overloads

Create(Int32, Int32, Double, Double, PixelFormat, BitmapPalette, Array, Int32)

Creates a new BitmapSource from an array of pixels.

Create(Int32, Int32, Double, Double, PixelFormat, BitmapPalette, IntPtr, Int32, Int32)

Creates a new BitmapSource from an array of pixels that are stored in unmanaged memory.

Create(Int32, Int32, Double, Double, PixelFormat, BitmapPalette, Array, Int32)

Creates a new BitmapSource from an array of pixels.

public:
 static System::Windows::Media::Imaging::BitmapSource ^ Create(int pixelWidth, int pixelHeight, double dpiX, double dpiY, System::Windows::Media::PixelFormat pixelFormat, System::Windows::Media::Imaging::BitmapPalette ^ palette, Array ^ pixels, int stride);
public static System.Windows.Media.Imaging.BitmapSource Create (int pixelWidth, int pixelHeight, double dpiX, double dpiY, System.Windows.Media.PixelFormat pixelFormat, System.Windows.Media.Imaging.BitmapPalette palette, Array pixels, int stride);
static member Create : int * int * double * double * System.Windows.Media.PixelFormat * System.Windows.Media.Imaging.BitmapPalette * Array * int -> System.Windows.Media.Imaging.BitmapSource

Parameters

pixelWidth
Int32

The width of the bitmap.

pixelHeight
Int32

The height of the bitmap.

dpiX
Double

The horizontal dots per inch (dpi) of the bitmap.

dpiY
Double

The vertical dots per inch (dpi) of the bitmap.

pixelFormat
PixelFormat

The pixel format of the bitmap.

palette
BitmapPalette

The palette of the bitmap.

pixels
Array

An array of bytes that represents the content of a bitmap image.

stride
Int32

The stride of the bitmap.

Returns

The BitmapSource that is created from the specified array of pixels.

Examples

The following example demonstrates how to use this method in order to create a new BitmapSource.

int width = 128;
int height = width;
int stride = width/8;
byte[] pixels = new byte[height*stride];

// Try creating a new image with a custom palette.
List<System.Windows.Media.Color> colors = new List<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);
BitmapPalette myPalette = new BitmapPalette(colors);

// Creates a new empty image with the pre-defined palette

BitmapSource image = BitmapSource.Create(
    width,
    height,
    96,
    96,
    PixelFormats.Indexed1,
    myPalette, 
    pixels, 
    stride);

FileStream stream = new FileStream("empty.tif", FileMode.Create);
TiffBitmapEncoder encoder = new TiffBitmapEncoder();
TextBlock myTextBlock = 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);

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)

See also

Create(Int32, Int32, Double, Double, PixelFormat, BitmapPalette, IntPtr, Int32, Int32)

Creates a new BitmapSource from an array of pixels that are stored in unmanaged memory.

public:
 static System::Windows::Media::Imaging::BitmapSource ^ Create(int pixelWidth, int pixelHeight, double dpiX, double dpiY, System::Windows::Media::PixelFormat pixelFormat, System::Windows::Media::Imaging::BitmapPalette ^ palette, IntPtr buffer, int bufferSize, int stride);
[System.Security.SecurityCritical]
public static System.Windows.Media.Imaging.BitmapSource Create (int pixelWidth, int pixelHeight, double dpiX, double dpiY, System.Windows.Media.PixelFormat pixelFormat, System.Windows.Media.Imaging.BitmapPalette palette, IntPtr buffer, int bufferSize, int stride);
static member Create : int * int * double * double * System.Windows.Media.PixelFormat * System.Windows.Media.Imaging.BitmapPalette * nativeint * int * int -> System.Windows.Media.Imaging.BitmapSource

Parameters

pixelWidth
Int32

The width of the bitmap.

pixelHeight
Int32

The height of the bitmap.

dpiX
Double

The horizontal dots per inch (dpi) of the bitmap.

dpiY
Double

The vertical dots per inch (dpi) of the bitmap.

pixelFormat
PixelFormat

The pixel format of the bitmap.

palette
BitmapPalette

The palette of the bitmap.

buffer
IntPtr

A pointer to the buffer that contains the bitmap data in memory.

bufferSize
Int32

The size of the buffer.

stride
Int32

The stride of the bitmap.

Returns

A BitmapSource that is created from the array of pixels in unmanaged memory.

Attributes

Security

SecurityPermission
Callers must have UnmanagedCode permission to call this API because this code accesses a memory buffer by using a pointer reference. See UnmanagedCode for more information.

Applies to