BitmapSource.Create Method (Int32, Int32, Double, Double, PixelFormat, BitmapPalette, Array, Int32)

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Creates a new BitmapSource from an array of pixels.

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

public static BitmapSource Create(
	int pixelWidth,
	int pixelHeight,
	double dpiX,
	double dpiY,
	PixelFormat pixelFormat,
	BitmapPalette palette,
	Array pixels,
	int stride
)

Parameters

pixelWidth
Type: System.Int32

The width of the bitmap.

pixelHeight
Type: System.Int32

The height of the bitmap.

dpiX
Type: System.Double

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

dpiY
Type: System.Double

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

pixelFormat
Type: System.Windows.Media.PixelFormat

The pixel format of the bitmap.

palette
Type: System.Windows.Media.Imaging.BitmapPalette

The palette of the bitmap.

pixels
Type: System.Array

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

stride
Type: System.Int32

The stride of the bitmap.

Return Value

Type: System.Windows.Media.Imaging.BitmapSource

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

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);

.NET Framework
Available since 3.0
Return to top
Show: