Bitmap Konstruktory
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Inicjuje nowe wystąpienie klasy Bitmap.
Przeciążenia
Bitmap(Image) |
Inicjuje Bitmap nowe wystąpienie klasy z określonego istniejącego obrazu. |
Bitmap(Stream) |
Inicjuje Bitmap nowe wystąpienie klasy z określonego strumienia danych. |
Bitmap(String) |
Inicjuje Bitmap nowe wystąpienie klasy z określonego pliku. |
Bitmap(Image, Size) |
Inicjuje nowe wystąpienie Bitmap klasy z określonego istniejącego obrazu, skalowane do określonego rozmiaru. |
Bitmap(Int32, Int32) |
Inicjuje Bitmap nowe wystąpienie klasy o określonym rozmiarze. |
Bitmap(Stream, Boolean) |
Inicjuje Bitmap nowe wystąpienie klasy z określonego strumienia danych. |
Bitmap(String, Boolean) |
Inicjuje Bitmap nowe wystąpienie klasy z określonego pliku. |
Bitmap(Type, String) |
Inicjuje Bitmap nowe wystąpienie klasy z określonego zasobu. |
Bitmap(Image, Int32, Int32) |
Inicjuje nowe wystąpienie Bitmap klasy z określonego istniejącego obrazu, skalowane do określonego rozmiaru. |
Bitmap(Int32, Int32, Graphics) |
Inicjuje nowe wystąpienie Bitmap klasy o określonym rozmiarze i rozdzielczości określonego Graphics obiektu. |
Bitmap(Int32, Int32, PixelFormat) |
Inicjuje Bitmap nowe wystąpienie klasy o określonym rozmiarze i formacie. |
Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) |
Inicjuje Bitmap nowe wystąpienie klasy z określonym rozmiarem, formatem pikseli i danymi pikseli. |
Bitmap(Image)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonego istniejącego obrazu.
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)
Parametry
Dotyczy
Bitmap(Stream)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonego strumienia danych.
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)
Parametry
- stream
- Stream
Strumień danych używany do ładowania obrazu.
Wyjątki
stream
nie zawiera danych obrazu lub jest null
.
-lub-
stream
zawiera plik obrazu PNG o pojedynczym wymiarze większym niż 65 535 pikseli.
Przykłady
W poniższym przykładzie kodu pokazano, jak załadować mapę bitową ze strumienia.
Ten przykład jest przeznaczony do użycia z Windows Forms. Twórca formularz zawierający PictureBox nazwę PictureBox1
. Wklej kod do formularza i wywołaj InitializeStreamBitmap
metodę z konstruktora formularza lub Load metody obsługi zdarzeń.
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
Uwagi
Strumień musi być otwarty przez cały okres istnienia obiektu Bitmap.
Ze względu na ograniczenie dekodera System.ArgumentException GDI+ jest zgłaszany, jeśli skonstruujesz mapę bitową z pliku obrazu .png z pojedynczym wymiarem większym niż 65 535 pikseli.
Zobacz też
Dotyczy
Bitmap(String)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonego pliku.
public:
Bitmap(System::String ^ filename);
public Bitmap (string filename);
new System.Drawing.Bitmap : string -> System.Drawing.Bitmap
Public Sub New (filename As String)
Parametry
- filename
- String
Nazwa i ścieżka pliku mapy bitowej.
Wyjątki
Nie można odnaleźć określonego pliku.
Uwagi
Nazwa pliku i ścieżka mogą być względne względem aplikacji lub ścieżki bezwzględnej. Ten konstruktor służy do otwierania obrazów z następującymi formatami plików: BMP, GIF, EXIF, JPG, PNG i TIFF. Aby uzyskać więcej informacji na temat obsługiwanych formatów, zobacz Typy map bitowych. Plik pozostaje zablokowany do momentu Bitmap usunięcia pliku.
Zobacz też
Dotyczy
Bitmap(Image, Size)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje nowe wystąpienie Bitmap klasy z określonego istniejącego obrazu, skalowane do określonego rozmiaru.
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)
Parametry
Wyjątki
Operacja nie powiodła się.
Dotyczy
Bitmap(Int32, Int32)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy o określonym rozmiarze.
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)
Parametry
Wyjątki
Operacja nie powiodła się.
Uwagi
Ten konstruktor tworzy obiekt Bitmap z wartością PixelFormat wyliczenia .Format32bppArgb
Dotyczy
Bitmap(Stream, Boolean)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonego strumienia danych.
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)
Parametry
- stream
- Stream
Strumień danych używany do ładowania obrazu.
Wyjątki
stream
nie zawiera danych obrazu lub jest null
.
-lub-
stream
zawiera plik obrazu PNG o pojedynczym wymiarze większym niż 65 535 pikseli.
Uwagi
Strumień musi być otwarty przez cały okres istnienia obiektu Bitmap.
Ze względu na ograniczenie dekodera System.ArgumentException GDI+ jest zgłaszany, jeśli skonstruujesz mapę bitową z pliku obrazu .png z pojedynczym wymiarem większym niż 65 535 pikseli.
Zobacz też
Dotyczy
Bitmap(String, Boolean)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonego pliku.
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)
Parametry
- filename
- String
Nazwa pliku mapy bitowej.
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć nową mapę bitową z pliku. W przykładzie użyto GetPixel metod i SetPixel w celu ponownego kolorowania obrazu. Używa również PixelFormat właściwości .
Ten przykład jest przeznaczony do użycia z formularzem systemu Windows zawierającym Labelodpowiednio wartości , PictureBox i Button o nazwie Label1
PictureBox1
i Button1
. Wklej kod do formularza i skojarz metodę Button1_Click
ze zdarzeniem przycisku 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
Uwagi
Ten konstruktor służy do otwierania obrazów z następującymi formatami plików: BMP, GIF, EXIF, JPG, PNG i TIFF. Aby uzyskać więcej informacji na temat obsługiwanych formatów, zobacz Typy map bitowych. Plik pozostaje zablokowany do momentu Bitmap usunięcia pliku.
Zobacz też
Dotyczy
Bitmap(Type, String)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonego zasobu.
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)
Parametry
- type
- Type
Klasa używana do wyodrębniania zasobu.
- resource
- String
Nazwa zasobu.
Przykłady
W poniższym przykładzie kodu pokazano, jak utworzyć mapę bitową z typu i jak używać Save metody . Aby uruchomić ten przykład, wklej kod do formularza systemu Windows. Obsługa zdarzenia formularza Paint i wywoływanie ConstructFromResourceSaveAsGif
metody, przekazując e
jako 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
Uwagi
Ten konstruktor łączy przestrzeń nazw danego typu z nazwą ciągu zasobu i wyszukuje dopasowanie w manifeście zestawu. Na przykład można przekazać Button typ i Button.bmp
do tego konstruktora, a następnie wyszuka zasób o nazwie System.Windows.Forms.Button.bmp
.
Zobacz też
Dotyczy
Bitmap(Image, Int32, Int32)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje nowe wystąpienie Bitmap klasy z określonego istniejącego obrazu, skalowane do określonego rozmiaru.
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)
Parametry
Wyjątki
Operacja nie powiodła się.
Dotyczy
Bitmap(Int32, Int32, Graphics)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- 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)
Parametry
Wyjątki
g
to null
.
Uwagi
NowaBitmap, którą tworzy ta metoda, przyjmuje odpowiednio rozdzielczość poziomą i pionową z DpiX właściwości i DpiY .g
Dotyczy
Bitmap(Int32, Int32, PixelFormat)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy o określonym rozmiarze i formacie.
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)
Parametry
- format
- PixelFormat
Format pikseli dla nowego Bitmapelementu . Musi to określać wartość rozpoczynającą się od Format
.
Wyjątki
Określona PixelFormat jest wartość, której nazwa nie rozpoczyna się od formatu. Na przykład określenie Gdi spowoduje ArgumentException, ale Format48bppRgb nie spowoduje.
Dotyczy
Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr)
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
- Źródło:
- Bitmap.cs
Inicjuje Bitmap nowe wystąpienie klasy z określonym rozmiarem, formatem pikseli i danymi pikseli.
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)
Parametry
- stride
- Int32
Liczba całkowita określająca przesunięcie bajtu między początkiem jednego wiersza skanowania a następnym. Zwykle jest to (ale niekoniecznie) liczba bajtów w formacie pikseli (na przykład 2 dla 16 bitów na piksel) mnożona przez szerokość mapy bitowej. Wartość przekazana do tego parametru musi być wielokrotna z czterech.
- format
- PixelFormat
Format pikseli dla nowego Bitmapelementu . Musi to określać wartość rozpoczynającą się od Format
.
- scan0
-
IntPtr
nativeint
Wskaźnik do tablicy bajtów, która zawiera dane pikseli.
Wyjątki
Określona PixelFormat jest wartość, której nazwa nie rozpoczyna się od formatu. Na przykład określenie Gdi spowoduje ArgumentException, ale Format48bppRgb nie spowoduje.
Przykłady
W poniższym przykładzie kodu pokazano, jak używać konstruktora Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) . Ten przykład jest przeznaczony do użycia z Windows Forms i wymaga PaintEventArgs parametru, który jest parametrem Paint zdarzenia.
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
Uwagi
Obiekt wywołujący jest odpowiedzialny za przydzielanie i zwalnianie bloku pamięci określonej przez scan0
parametr . Jednak pamięć nie powinna być zwalniana do momentu wydania powiązanego Bitmap .