Bitmap Costruttori

Definizione

Inizializza una nuova istanza della classe Bitmap.

Overload

Bitmap(Image)

Inizializza una nuova istanza della classe Bitmap a partire dall'immagine esistente.

Bitmap(Stream)

Inizializza una nuova istanza della classe Bitmap dal flusso dei dati specificato.

Bitmap(String)

Inizializza una nuova istanza della classe Bitmap dal file specificato.

Bitmap(Image, Size)

Inizializza una nuova istanza della classe Bitmap dall'immagine specificata esistente, adattata in base alle dimensioni indicate.

Bitmap(Int32, Int32)

Inizializza una nuova istanza della classe Bitmap con le dimensioni specificate.

Bitmap(Stream, Boolean)

Inizializza una nuova istanza della classe Bitmap dal flusso dei dati specificato.

Bitmap(String, Boolean)

Inizializza una nuova istanza della classe Bitmap dal file specificato.

Bitmap(Type, String)

Inizializza una nuova istanza della classe Bitmap da una risorsa specificata.

Bitmap(Image, Int32, Int32)

Inizializza una nuova istanza della classe Bitmap dall'immagine specificata esistente, adattata in base alle dimensioni indicate.

Bitmap(Int32, Int32, Graphics)

Inizializza una nuova istanza della classe Bitmap con le dimensioni specificate e la risoluzione dell'oggetto Graphics indicato.

Bitmap(Int32, Int32, PixelFormat)

Inizializza una nuova istanza della classe Bitmap con le dimensioni e il formato specificati.

Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr)

Inizializza una nuova istanza della classe Bitmap con le dimensioni, il formato pixel e i dati pixel specificati.

Bitmap(Image)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap a partire dall'immagine esistente.

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)

Parametri

original
Image

Oggetto Image da cui creare il nuovo oggetto Bitmap.

Si applica a

Bitmap(Stream)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap dal flusso dei dati specificato.

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)

Parametri

stream
Stream

Flusso di dati utilizzato per caricare l'immagine.

Eccezioni

stream non contiene dati di immagine o è null.

-oppure-

stream contiene un file di immagine PNG con una singola dimensione superiore a 65.535 pixel.

Esempio

L'esempio di codice seguente illustra come caricare una bitmap da un flusso.

Questo esempio è progettato per essere usato con Windows Forms. Create un modulo contenente un PictureBox oggetto denominato PictureBox1. Incollare il codice nel form e chiamare il InitializeStreamBitmap metodo dal costruttore o Load dal metodo di gestione degli eventi del modulo.

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

Commenti

È necessario mantenere aperto il flusso per la durata di Bitmap.

A causa di una limitazione del decodificatore GDI+, viene generata un'eccezione System.ArgumentException se si costruisce una bitmap da un file di immagine .png con una singola dimensione maggiore di 65.535 pixel.

Vedi anche

Si applica a

Bitmap(String)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap dal file specificato.

public:
 Bitmap(System::String ^ filename);
public Bitmap (string filename);
new System.Drawing.Bitmap : string -> System.Drawing.Bitmap
Public Sub New (filename As String)

Parametri

filename
String

Nome e percorso del file bitmap.

Eccezioni

Il file specificato non è stato trovato.

Commenti

Il nome e il percorso del file possono essere relativi all'applicazione o a un percorso assoluto. Usare questo costruttore per aprire le immagini con i formati di file seguenti: BMP, GIF, EXIF, JPG, PNG e TIFF. Per altre informazioni sui formati supportati, vedere Tipi di bitmap. Il file rimane bloccato fino a quando non Bitmap viene eliminato .

Vedi anche

Si applica a

Bitmap(Image, Size)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap dall'immagine specificata esistente, adattata in base alle dimensioni indicate.

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)

Parametri

original
Image

Oggetto Image da cui creare il nuovo oggetto Bitmap.

newSize
Size

Struttura Size che rappresenta le dimensioni del nuovo oggetto Bitmap.

Eccezioni

Operazione non riuscita.

Si applica a

Bitmap(Int32, Int32)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap con le dimensioni specificate.

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)

Parametri

width
Int32

Larghezza, in pixel, del nuovo oggetto Bitmap.

height
Int32

Altezza, in pixel, del nuovo oggetto Bitmap.

Eccezioni

Operazione non riuscita.

Commenti

Questo costruttore crea un Bitmap oggetto con un PixelFormat valore di enumerazione pari a Format32bppArgb.

Si applica a

Bitmap(Stream, Boolean)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap dal flusso dei dati specificato.

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)

Parametri

stream
Stream

Flusso di dati utilizzato per caricare l'immagine.

useIcm
Boolean

true per utilizzare la correzione dei colori per questo oggetto Bitmap; in caso contrario, false.

Eccezioni

stream non contiene dati di immagine o è null.

-oppure-

stream contiene un file di immagine PNG con una singola dimensione superiore a 65.535 pixel.

Commenti

È necessario mantenere aperto il flusso per la durata di Bitmap.

A causa di una limitazione del decodificatore GDI+, viene generata un'eccezione System.ArgumentException se si costruisce una bitmap da un file di immagine .png con una singola dimensione maggiore di 65.535 pixel.

Vedi anche

Si applica a

Bitmap(String, Boolean)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap dal file specificato.

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)

Parametri

filename
String

Nome del file bitmap.

useIcm
Boolean

true per utilizzare la correzione dei colori per questo oggetto Bitmap; in caso contrario, false.

Esempio

Nell'esempio di codice seguente viene illustrato come costruire una nuova bitmap da un file. Nell'esempio vengono usati i GetPixel metodi e SetPixel per ricolorare l'immagine. Usa anche la PixelFormat proprietà .

Questo esempio è progettato per essere usato con un Windows Form che contiene rispettivamente un LabelPictureBox oggetto , e Button denominato PictureBox1Label1e Button1. Incollare il codice nel modulo e associare il Button1_Click metodo all'evento del Click pulsante.

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

Commenti

Usare questo costruttore per aprire le immagini con i formati di file seguenti: BMP, GIF, EXIF, JPG, PNG e TIFF. Per altre informazioni sui formati supportati, vedere Tipi di bitmap. Il file rimane bloccato fino a quando non Bitmap viene eliminato .

Vedi anche

Si applica a

Bitmap(Type, String)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap da una risorsa specificata.

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)

Parametri

type
Type

Classe utilizzata per estrarre la risorsa.

resource
String

Nome della risorsa.

Esempio

Nell'esempio di codice seguente viene illustrato come costruire una bitmap da un tipo e come usare il Save metodo . Per eseguire questo esempio, incollare il codice in un Windows Form. Gestire l'evento del Paint modulo e chiamare il ConstructFromResourceSaveAsGif metodo , passando e come 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

Commenti

Questo costruttore combina lo spazio dei nomi del tipo specificato con il nome stringa della risorsa e cerca una corrispondenza nel manifesto dell'assembly. Ad esempio, è possibile passare il Button tipo e Button.bmp a questo costruttore e cercherà una risorsa denominata System.Windows.Forms.Button.bmp.

Vedi anche

Si applica a

Bitmap(Image, Int32, Int32)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap dall'immagine specificata esistente, adattata in base alle dimensioni indicate.

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)

Parametri

original
Image

Oggetto Image da cui creare il nuovo oggetto Bitmap.

width
Int32

Larghezza, in pixel, del nuovo oggetto Bitmap.

height
Int32

Altezza, in pixel, del nuovo oggetto Bitmap.

Eccezioni

Operazione non riuscita.

Si applica a

Bitmap(Int32, Int32, Graphics)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap con le dimensioni specificate e la risoluzione dell'oggetto Graphics indicato.

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)

Parametri

width
Int32

Larghezza, in pixel, del nuovo oggetto Bitmap.

height
Int32

Altezza, in pixel, del nuovo oggetto Bitmap.

g
Graphics

Oggetto Graphics che specifica la risoluzione del nuovo oggetto Bitmap.

Eccezioni

Commenti

Il nuovo Bitmap creato da questo metodo accetta rispettivamente la DpiX risoluzione orizzontale e verticale dalle proprietà e DpiY di g.

Si applica a

Bitmap(Int32, Int32, PixelFormat)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap con le dimensioni e il formato specificati.

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)

Parametri

width
Int32

Larghezza, in pixel, del nuovo oggetto Bitmap.

height
Int32

Altezza, in pixel, del nuovo oggetto Bitmap.

format
PixelFormat

Formato pixel per il nuovo oggetto Bitmap. Deve specificare un valore che inizia con Format.

Eccezioni

Viene specificato un valore PixelFormat il cui nome non inizia con Format. Ad esempio, specificare Gdi, provocherà un ArgumentException, al contrario di Format48bppRgb.

Si applica a

Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr)

Origine:
Bitmap.cs
Origine:
Bitmap.cs
Origine:
Bitmap.cs

Inizializza una nuova istanza della classe Bitmap con le dimensioni, il formato pixel e i dati pixel specificati.

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)

Parametri

width
Int32

Larghezza, in pixel, del nuovo oggetto Bitmap.

height
Int32

Altezza, in pixel, del nuovo oggetto Bitmap.

stride
Int32

Integer che specifica l'offset di byte tra l'inizio di una linea di digitalizzazione e la successiva. In genere, ma non necessariamente, rappresenta il numero di byte in formato di pixel (ad esempio, 2 x 16 bit per pixel) moltiplicato per la larghezza della bitmap. Il valore passato a questo parametro deve essere un multiplo di quattro.

format
PixelFormat

Formato pixel per il nuovo oggetto Bitmap. Deve specificare un valore che inizia con Format.

scan0
IntPtr

nativeint

Puntatore a una matrice di byte in cui sono contenuti i dati del record.

Eccezioni

Viene specificato un valore PixelFormat il cui nome non inizia con Format. Ad esempio, specificare Gdi, provocherà un ArgumentException, al contrario di Format48bppRgb.

Esempio

Nell'esempio di codice seguente viene illustrato come usare il Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) costruttore . Questo esempio è progettato per essere usato con Windows Forms e richiede un PaintEventArgs parametro , che è un parametro dell'eventoPaint.

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

Commenti

Il chiamante è responsabile dell'allocazione e della liberazione del blocco di memoria specificato dal scan0 parametro . Tuttavia, la memoria non deve essere rilasciata finché non viene rilasciata la relazione Bitmap .

Si applica a