Bitmap Конструкторы
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Инициализирует новый экземпляр класса Bitmap.
Перегрузки
Bitmap(Image) |
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения. |
Bitmap(Stream) |
Инициализирует новый экземпляр класса Bitmap из указанного потока данных. |
Bitmap(String) |
Инициализирует новый экземпляр класса Bitmap из указанного файла. |
Bitmap(Image, Size) |
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения, масштабированного до заданного размера. |
Bitmap(Int32, Int32) |
Инициализирует новый экземпляр класса Bitmap с заданным размером. |
Bitmap(Stream, Boolean) |
Инициализирует новый экземпляр класса Bitmap из указанного потока данных. |
Bitmap(String, Boolean) |
Инициализирует новый экземпляр класса Bitmap из указанного файла. |
Bitmap(Type, String) |
Инициализирует новый экземпляр класса Bitmap из указанного ресурса. |
Bitmap(Image, Int32, Int32) |
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения, масштабированного до заданного размера. |
Bitmap(Int32, Int32, Graphics) |
Инициализирует новый экземпляр класса Bitmap с заданным размером и с разрешением указанного объекта Graphics. |
Bitmap(Int32, Int32, PixelFormat) |
Инициализирует новый экземпляр класса Bitmap с заданными значениями размера и формата. |
Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) |
Инициализирует новый экземпляр класса Bitmap с заданным размером, форматом и данными пикселей. |
Bitmap(Image)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения.
public:
Bitmap(System::Drawing::Image ^ original);
public Bitmap (System.Drawing.Image original);
new System.Drawing.Bitmap : System.Drawing.Image -> System.Drawing.Bitmap
Public Sub New (original As Image)
Параметры
Применяется к
Bitmap(Stream)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного потока данных.
public:
Bitmap(System::IO::Stream ^ stream);
public Bitmap (System.IO.Stream stream);
new System.Drawing.Bitmap : System.IO.Stream -> System.Drawing.Bitmap
Public Sub New (stream As Stream)
Параметры
- stream
- Stream
Поток данных, используемый для загрузки изображения.
Исключения
Параметр stream
не содержит данные изображения или равен null
.
-или-
Поток stream
содержит файл изображения PNG, один из размеров которого превышает 65535 пикселей.
Примеры
В следующем примере кода показано, как загрузить растровое изображение из потока.
Этот пример предназначен для использования с Windows Forms. Create форму, содержащую PictureBox с именем PictureBox1
. Вставьте код в форму и вызовите InitializeStreamBitmap
метод из конструктора формы или Load метода обработки событий.
void InitializeStreamBitmap()
{
try
{
System::Net::WebRequest^ request = System::Net::WebRequest::Create( "http://www.microsoft.com//h/en-us/r/ms_masthead_ltr.gif" );
System::Net::WebResponse^ response = request->GetResponse();
System::IO::Stream^ responseStream = response->GetResponseStream();
Bitmap^ bitmap2 = gcnew Bitmap( responseStream );
PictureBox1->Image = bitmap2;
}
catch ( System::Net::WebException^ )
{
MessageBox::Show( "There was an error opening the image file."
"Check the URL" );
}
}
private void InitializeStreamBitmap()
{
try
{
System.Net.WebRequest request =
System.Net.WebRequest.Create(
"http://www.microsoft.com//h/en-us/r/ms_masthead_ltr.gif");
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream responseStream =
response.GetResponseStream();
Bitmap bitmap2 = new Bitmap(responseStream);
PictureBox1.Image = bitmap2;
}
catch(System.Net.WebException)
{
MessageBox.Show("There was an error opening the image file."
+ "Check the URL");
}
}
Private Sub InitializeStreamBitmap()
Try
Dim request As System.Net.WebRequest = _
System.Net.WebRequest.Create( _
"http://www.microsoft.com//h/en-us/r/ms_masthead_ltr.gif")
Dim response As System.Net.WebResponse = request.GetResponse()
Dim responseStream As System.IO.Stream = response.GetResponseStream()
Dim bitmap2 As New Bitmap(responseStream)
PictureBox1.Image = bitmap2
Catch ex As System.Net.WebException
MessageBox.Show("There was an error opening the image file. Check the URL")
End Try
End Sub
Комментарии
Поток должен оставаться открытым в течение всего времени существования Bitmap.
Из-за ограничения декодера System.ArgumentException GDI+ создается при создании растрового изображения из файла .png изображения с одним измерением более 65 535 пикселей.
См. также раздел
Применяется к
Bitmap(String)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного файла.
public:
Bitmap(System::String ^ filename);
public Bitmap (string filename);
new System.Drawing.Bitmap : string -> System.Drawing.Bitmap
Public Sub New (filename As String)
Параметры
- filename
- String
Имя файла растрового изображения и путь к нему.
Исключения
Указанный файл не найден.
Комментарии
Имя файла и путь могут быть относительно приложения или абсолютным путем. Используйте этот конструктор для открытия изображений в следующих форматах файлов: BMP, GIF, EXIF, JPG, PNG и TIFF. Дополнительные сведения о поддерживаемых форматах см. в разделе Типы растровых изображений. Файл остается заблокированным до тех пор, пока не Bitmap будет удален.
См. также раздел
Применяется к
Bitmap(Image, Size)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения, масштабированного до заданного размера.
public:
Bitmap(System::Drawing::Image ^ original, System::Drawing::Size newSize);
public Bitmap (System.Drawing.Image original, System.Drawing.Size newSize);
new System.Drawing.Bitmap : System.Drawing.Image * System.Drawing.Size -> System.Drawing.Bitmap
Public Sub New (original As Image, newSize As Size)
Параметры
Исключения
Операция не удалась.
Применяется к
Bitmap(Int32, Int32)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap с заданным размером.
public:
Bitmap(int width, int height);
public Bitmap (int width, int height);
new System.Drawing.Bitmap : int * int -> System.Drawing.Bitmap
Public Sub New (width As Integer, height As Integer)
Параметры
Исключения
Операция не удалась.
Комментарии
Этот конструктор создает Bitmap со значением PixelFormat перечисления Format32bppArgb.
Применяется к
Bitmap(Stream, Boolean)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного потока данных.
public:
Bitmap(System::IO::Stream ^ stream, bool useIcm);
public Bitmap (System.IO.Stream stream, bool useIcm);
new System.Drawing.Bitmap : System.IO.Stream * bool -> System.Drawing.Bitmap
Public Sub New (stream As Stream, useIcm As Boolean)
Параметры
- stream
- Stream
Поток данных, используемый для загрузки изображения.
- useIcm
- Boolean
Значение true
, чтобы воспользоваться цветокоррекцией для этого изображения Bitmap; в противном случае — значение false
.
Исключения
Параметр stream
не содержит данные изображения или равен null
.
-или-
Поток stream
содержит файл изображения PNG, один из размеров которого превышает 65535 пикселей.
Комментарии
Поток должен оставаться открытым в течение всего времени существования Bitmap.
Из-за ограничения декодера System.ArgumentException GDI+ создается при создании растрового изображения из файла .png изображения с одним измерением более 65 535 пикселей.
См. также раздел
Применяется к
Bitmap(String, Boolean)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного файла.
public:
Bitmap(System::String ^ filename, bool useIcm);
public Bitmap (string filename, bool useIcm);
new System.Drawing.Bitmap : string * bool -> System.Drawing.Bitmap
Public Sub New (filename As String, useIcm As Boolean)
Параметры
- filename
- String
Имя файла точечного рисунка.
- useIcm
- Boolean
Значение true
, чтобы воспользоваться цветокоррекцией для этого изображения Bitmap; в противном случае — значение false
.
Примеры
В следующем примере кода показано, как создать новое растровое изображение из файла. В примере используются методы GetPixel и SetPixel для перекраски изображения. Он также использует PixelFormat свойство .
Этот пример предназначен для использования с Формой Windows Forms, содержащей Label, PictureBox и Button с именами Label1
, PictureBox1
и Button1
соответственно. Вставьте код в форму и свяжите Button1_Click
метод с событием кнопки Click .
private:
Bitmap^ image1;
void Button1_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
try
{
// Retrieve the image.
image1 = gcnew Bitmap( "C:\\Documents and Settings\\All Users\\"
"Documents\\My Music\\music.bmp",true );
int x;
int y;
// Loop through the images pixels to reset color.
for ( x = 0; x < image1->Width; x++ )
{
for ( y = 0; y < image1->Height; y++ )
{
Color pixelColor = image1->GetPixel( x, y );
Color newColor = Color::FromArgb( pixelColor.R, 0, 0 );
image1->SetPixel( x, y, newColor );
}
}
// Set the PictureBox to display the image.
PictureBox1->Image = image1;
// Display the pixel format in Label1.
Label1->Text = String::Format( "Pixel format: {0}", image1->PixelFormat );
}
catch ( ArgumentException^ )
{
MessageBox::Show( "There was an error."
"Check the path to the image file." );
}
}
Bitmap image1;
private void Button1_Click(System.Object sender, System.EventArgs e)
{
try
{
// Retrieve the image.
image1 = new Bitmap(@"C:\Documents and Settings\All Users\"
+ @"Documents\My Music\music.bmp", true);
int x, y;
// Loop through the images pixels to reset color.
for(x=0; x<image1.Width; x++)
{
for(y=0; y<image1.Height; y++)
{
Color pixelColor = image1.GetPixel(x, y);
Color newColor = Color.FromArgb(pixelColor.R, 0, 0);
image1.SetPixel(x, y, newColor);
}
}
// Set the PictureBox to display the image.
PictureBox1.Image = image1;
// Display the pixel format in Label1.
Label1.Text = "Pixel format: "+image1.PixelFormat.ToString();
}
catch(ArgumentException)
{
MessageBox.Show("There was an error." +
"Check the path to the image file.");
}
}
Dim image1 As Bitmap
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Try
' Retrieve the image.
image1 = New Bitmap( _
"C:\Documents and Settings\All Users\Documents\My Music\music.bmp", _
True)
Dim x, y As Integer
' Loop through the images pixels to reset color.
For x = 0 To image1.Width - 1
For y = 0 To image1.Height - 1
Dim pixelColor As Color = image1.GetPixel(x, y)
Dim newColor As Color = _
Color.FromArgb(pixelColor.R, 0, 0)
image1.SetPixel(x, y, newColor)
Next
Next
' Set the PictureBox to display the image.
PictureBox1.Image = image1
' Display the pixel format in Label1.
Label1.Text = "Pixel format: " + image1.PixelFormat.ToString()
Catch ex As ArgumentException
MessageBox.Show("There was an error." _
& "Check the path to the image file.")
End Try
End Sub
Комментарии
Используйте этот конструктор для открытия изображений в следующих форматах файлов: BMP, GIF, EXIF, JPG, PNG и TIFF. Дополнительные сведения о поддерживаемых форматах см. в разделе Типы растровых изображений. Файл остается заблокированным до тех пор, пока не Bitmap будет удален.
См. также раздел
Применяется к
Bitmap(Type, String)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного ресурса.
public:
Bitmap(Type ^ type, System::String ^ resource);
public Bitmap (Type type, string resource);
new System.Drawing.Bitmap : Type * string -> System.Drawing.Bitmap
Public Sub New (type As Type, resource As String)
Параметры
- type
- Type
Класс, используемый для извлечения ресурсов.
- resource
- String
Имя ресурса.
Примеры
В следующем примере кода показано, как создать растровое изображение из типа и как использовать Save метод . Чтобы запустить этот пример, вставьте код в форму Windows Forms. Обработайте событие формы Paint и вызовите ConstructFromResourceSaveAsGif
метод , передав как e
PaintEventArgs
private:
void ConstructFromResourceSaveAsGif(PaintEventArgs^ e)
{
// Construct a bitmap from the button image resource.
Bitmap^ bmp1 = gcnew Bitmap(Button::typeid, "Button.bmp");
String^ savePath =
Environment::GetEnvironmentVariable("TEMP") + "\\Button.bmp";
try
{
// Save the image as a GIF.
bmp1->Save(savePath, System::Drawing::Imaging::ImageFormat::Gif);
}
catch (IOException^)
{
// Carry on regardless
}
// Construct a new image from the GIF file.
Bitmap^ bmp2 = nullptr;
if (File::Exists(savePath))
{
bmp2 = gcnew Bitmap(savePath);
}
// Draw the two images.
e->Graphics->DrawImage(bmp1, Point(10, 10));
// If bmp1 did not save to disk, bmp2 may be null
if (bmp2 != nullptr)
{
e->Graphics->DrawImage(bmp2, Point(10, 40));
}
// Dispose of the image files.
delete bmp1;
if (bmp2 != nullptr)
{
delete bmp2;
}
}
private void ConstructFromResourceSaveAsGif(PaintEventArgs e)
{
// Construct a bitmap from the button image resource.
Bitmap bmp1 = new Bitmap(typeof(Button), "Button.bmp");
// Save the image as a GIF.
bmp1.Save("c:\\button.gif", System.Drawing.Imaging.ImageFormat.Gif);
// Construct a new image from the GIF file.
Bitmap bmp2 = new Bitmap("c:\\button.gif");
// Draw the two images.
e.Graphics.DrawImage(bmp1, new Point(10, 10));
e.Graphics.DrawImage(bmp2, new Point(10, 40));
// Dispose of the image files.
bmp1.Dispose();
bmp2.Dispose();
}
Private Sub ConstructFromResourceSaveAsGif(ByVal e As PaintEventArgs)
' Construct a bitmap from the button image resource.
Dim bmp1 As New Bitmap(GetType(Button), "Button.bmp")
' Save the image as a GIF.
bmp1.Save("c:\button.gif", System.Drawing.Imaging.ImageFormat.Gif)
' Construct a new image from the GIF file.
Dim bmp2 As New Bitmap("c:\button.gif")
' Draw the two images.
e.Graphics.DrawImage(bmp1, New Point(10, 10))
e.Graphics.DrawImage(bmp2, New Point(10, 40))
' Dispose of the image files.
bmp1.Dispose()
bmp2.Dispose()
End Sub
Комментарии
Этот конструктор объединяет пространство имен заданного типа со строковым именем ресурса и ищет совпадение в манифесте сборки. Например, можно передать тип и Button.bmp
в Button этот конструктор, и он будет искать ресурс с именем System.Windows.Forms.Button.bmp
.
См. также раздел
Применяется к
Bitmap(Image, Int32, Int32)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap из указанного существующего изображения, масштабированного до заданного размера.
public:
Bitmap(System::Drawing::Image ^ original, int width, int height);
public Bitmap (System.Drawing.Image original, int width, int height);
new System.Drawing.Bitmap : System.Drawing.Image * int * int -> System.Drawing.Bitmap
Public Sub New (original As Image, width As Integer, height As Integer)
Параметры
Исключения
Операция не удалась.
Применяется к
Bitmap(Int32, Int32, Graphics)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
public:
Bitmap(int width, int height, System::Drawing::Graphics ^ g);
public Bitmap (int width, int height, System.Drawing.Graphics g);
new System.Drawing.Bitmap : int * int * System.Drawing.Graphics -> System.Drawing.Bitmap
Public Sub New (width As Integer, height As Integer, g As Graphics)
Параметры
Исключения
g
имеет значение null
.
Комментарии
Новый Bitmap объект, создаваемый этим методом, принимает горизонтальное и вертикальное DpiX разрешение из свойств g
и DpiY соответственно.
Применяется к
Bitmap(Int32, Int32, PixelFormat)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap с заданными значениями размера и формата.
public:
Bitmap(int width, int height, System::Drawing::Imaging::PixelFormat format);
public Bitmap (int width, int height, System.Drawing.Imaging.PixelFormat format);
new System.Drawing.Bitmap : int * int * System.Drawing.Imaging.PixelFormat -> System.Drawing.Bitmap
Public Sub New (width As Integer, height As Integer, format As PixelFormat)
Параметры
- format
- PixelFormat
Формат пикселей для нового объекта Bitmap. Необходимо указать значение, начинающееся с Format
.
Исключения
Задано значение PixelFormat, имя которого не начинается с Format. Например, задание поля Gdi приведет к ArgumentException, но Format48bppRgb не приведет.
Применяется к
Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr)
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
- Исходный код:
- Bitmap.cs
Инициализирует новый экземпляр класса Bitmap с заданным размером, форматом и данными пикселей.
public:
Bitmap(int width, int height, int stride, System::Drawing::Imaging::PixelFormat format, IntPtr scan0);
public Bitmap (int width, int height, int stride, System.Drawing.Imaging.PixelFormat format, IntPtr scan0);
new System.Drawing.Bitmap : int * int * int * System.Drawing.Imaging.PixelFormat * nativeint -> System.Drawing.Bitmap
Public Sub New (width As Integer, height As Integer, stride As Integer, format As PixelFormat, scan0 As IntPtr)
Параметры
- stride
- Int32
Целое число, определяющее смещение в байтах между строкой развертки и следующей строкой развертки. Обычно (но необязательно) это число байтов в формате пикселей (например, 2 для 16 битов на пиксель), умноженное на ширину точечного рисунка. Значение, переданное в этот параметр, должно быть кратно четырем.
- format
- PixelFormat
Формат пикселей для нового объекта Bitmap. Необходимо указать значение, начинающееся с Format
.
- scan0
-
IntPtr
nativeint
Указатель на массив байтов, содержащий данные пикселей.
Исключения
Задано значение PixelFormat, имя которого не начинается с Format. Например, задание поля Gdi приведет к ArgumentException, но Format48bppRgb не приведет.
Примеры
В следующем примере кода показано, как использовать Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) конструктор . Этот пример предназначен для использования с Windows Forms и требует PaintEventArgs параметра , который является параметром Paint события .
private void BitmapConstructorEx(PaintEventArgs e)
{
// Create a bitmap.
Bitmap bmp = new Bitmap("c:\\fakePhoto.jpg");
// Retrieve the bitmap data from the bitmap.
System.Drawing.Imaging.BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.ReadOnly, bmp.PixelFormat);
//Create a new bitmap.
Bitmap newBitmap = new Bitmap(200, 200, bmpData.Stride, bmp.PixelFormat, bmpData.Scan0);
bmp.UnlockBits(bmpData);
// Draw the new bitmap.
e.Graphics.DrawImage(newBitmap, 10, 10);
}
Private Sub BitmapConstructorEx(ByVal e As PaintEventArgs)
' Create a bitmap.
Dim bmp As New Bitmap("c:\fakePhoto.jpg")
' Retrieve the bitmap data from the bitmap.
Dim bmpData As System.Drawing.Imaging.BitmapData = bmp.LockBits(New Rectangle(0, 0, bmp.Width, bmp.Height), _
ImageLockMode.ReadOnly, bmp.PixelFormat)
'Create a new bitmap.
Dim newBitmap As New Bitmap(200, 200, bmpData.Stride, bmp.PixelFormat, bmpData.Scan0)
bmp.UnlockBits(bmpData)
' Draw the new bitmap.
e.Graphics.DrawImage(newBitmap, 10, 10)
End Sub
Комментарии
Вызывающий объект отвечает за выделение и освобождение блока памяти, указанного параметром scan0
. Однако память не должна освобождаться до тех пор, пока не будет освобождена связанная Bitmap память.