Partilhar via


Bitmap Construtores

Definição

Inicializa uma nova instância da classe Bitmap.

Sobrecargas

Bitmap(Image)

Inicializa uma nova instância da classe Bitmap da imagem existente especificada.

Bitmap(Stream)

Inicializa uma nova instância da classe Bitmap do fluxo de dados especificado.

Bitmap(String)

Inicializa uma nova instância da classe Bitmap do arquivo especificado.

Bitmap(Image, Size)

Inicializa uma nova instância da classe Bitmap da imagem existente especificada, dimensionada para o tamanho especificado.

Bitmap(Int32, Int32)

Inicializa uma nova instância da classe Bitmap com o tamanho especificado.

Bitmap(Stream, Boolean)

Inicializa uma nova instância da classe Bitmap do fluxo de dados especificado.

Bitmap(String, Boolean)

Inicializa uma nova instância da classe Bitmap do arquivo especificado.

Bitmap(Type, String)

Inicializa uma nova instância da classe Bitmap de um recurso especificado.

Bitmap(Image, Int32, Int32)

Inicializa uma nova instância da classe Bitmap da imagem existente especificada, dimensionada para o tamanho especificado.

Bitmap(Int32, Int32, Graphics)

Inicializa uma nova instância da classe Bitmap com o tamanho especificado e a resolução do objeto Graphics especificado.

Bitmap(Int32, Int32, PixelFormat)

Inicializa uma nova instância da classe Bitmap com o tamanho e o formato especificados.

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

Inicializa uma nova instância da classe Bitmap com o tamanho, o formato de pixel e os dados de pixel especificados.

Bitmap(Image)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap da imagem existente especificada.

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)

Parâmetros

original
Image

O Image por meio do qual o novo Bitmap será criado.

Aplica-se a

Bitmap(Stream)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap do fluxo de dados especificado.

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)

Parâmetros

stream
Stream

O fluxo de dados usado para carregar a imagem.

Exceções

stream não contém dados de imagem ou é null.

- ou -

stream contém um arquivo de imagem PNG com uma única dimensão maior do que 65.535 pixels.

Exemplos

O exemplo de código a seguir demonstra como carregar um bitmap de um fluxo.

Este exemplo foi projetado para ser usado com Windows Forms. Create um formulário que contém um PictureBox chamado PictureBox1. Cole o código no formulário e chame o InitializeStreamBitmap método do construtor do formulário ou Load do método de manipulação de eventos.

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

Comentários

Você deve manter o fluxo aberto durante o tempo de vida do Bitmap.

Devido a uma limitação do decodificador GDI+, um System.ArgumentException será gerado se você construir um bitmap de um arquivo de imagem .png com uma única dimensão maior que 65.535 pixels.

Confira também

Aplica-se a

Bitmap(String)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap do arquivo especificado.

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

Parâmetros

filename
String

O caminho e o nome do arquivo de bitmap.

Exceções

O arquivo especificado não foi encontrado.

Comentários

O nome e o caminho do arquivo podem ser relativos ao aplicativo ou a um caminho absoluto. Use esse construtor para abrir imagens com os seguintes formatos de arquivo: BMP, GIF, EXIF, JPG, PNG e TIFF. Para obter mais informações sobre formatos com suporte, consulte Tipos de Bitmaps. O arquivo permanece bloqueado até que o Bitmap seja descartado.

Confira também

Aplica-se a

Bitmap(Image, Size)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap da imagem existente especificada, dimensionada para o tamanho especificado.

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)

Parâmetros

original
Image

O Image por meio do qual o novo Bitmap será criado.

newSize
Size

A estrutura Size que representa o tamanho da nova Bitmap.

Exceções

Falha na operação.

Aplica-se a

Bitmap(Int32, Int32)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap com o tamanho especificado.

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)

Parâmetros

width
Int32

A largura, em pixels, da nova Bitmap.

height
Int32

A altura, em pixels, do novo Bitmap.

Exceções

Falha na operação.

Comentários

Esse construtor cria um Bitmap com um PixelFormat valor de enumeração de Format32bppArgb.

Aplica-se a

Bitmap(Stream, Boolean)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap do fluxo de dados especificado.

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)

Parâmetros

stream
Stream

O fluxo de dados usado para carregar a imagem.

useIcm
Boolean

true para usar a correção de cor para este Bitmap; caso contrário, false.

Exceções

stream não contém dados de imagem ou é null.

- ou -

stream contém um arquivo de imagem PNG com uma única dimensão maior do que 65.535 pixels.

Comentários

Você deve manter o fluxo aberto durante o tempo de vida do Bitmap.

Devido a uma limitação do decodificador GDI+, um System.ArgumentException será gerado se você construir um bitmap de um arquivo de imagem .png com uma única dimensão maior que 65.535 pixels.

Confira também

Aplica-se a

Bitmap(String, Boolean)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap do arquivo especificado.

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)

Parâmetros

filename
String

O nome do arquivo bitmap.

useIcm
Boolean

true para usar a correção de cor para este Bitmap; caso contrário, false.

Exemplos

O exemplo de código a seguir demonstra como construir um novo bitmap de um arquivo. O exemplo usa os GetPixel métodos e SetPixel para recolorir a imagem. Ele também usa a PixelFormat propriedade .

Este exemplo foi projetado para ser usado com um Windows Form que contém um Label, PictureBox e Button chamados Label1, PictureBox1 e Button1, respectivamente. Cole o código no formulário e associe o Button1_Click método ao evento do Click botão.

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

Comentários

Use esse construtor para abrir imagens com os seguintes formatos de arquivo: BMP, GIF, EXIF, JPG, PNG e TIFF. Para obter mais informações sobre formatos com suporte, consulte Tipos de Bitmaps. O arquivo permanece bloqueado até que o Bitmap seja descartado.

Confira também

Aplica-se a

Bitmap(Type, String)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap de um recurso especificado.

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)

Parâmetros

type
Type

A classe usada para extrair o recurso.

resource
String

O nome do recurso.

Exemplos

O exemplo de código a seguir demonstra como construir um bitmap de um tipo e como usar o Save método . Para executar este exemplo, cole o código em um Windows Form. Manipular o evento do Paint formulário e chamar o ConstructFromResourceSaveAsGif método , passando e como 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

Comentários

Esse construtor combina o namespace do tipo fornecido com o nome da cadeia de caracteres do recurso e procura uma correspondência no manifesto do assembly. Por exemplo, você pode passar o Button tipo e Button.bmp para esse construtor e ele procurará um recurso chamado System.Windows.Forms.Button.bmp.

Confira também

Aplica-se a

Bitmap(Image, Int32, Int32)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap da imagem existente especificada, dimensionada para o tamanho especificado.

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)

Parâmetros

original
Image

O Image por meio do qual o novo Bitmap será criado.

width
Int32

A largura, em pixels, da nova Bitmap.

height
Int32

A altura, em pixels, do novo Bitmap.

Exceções

Falha na operação.

Aplica-se a

Bitmap(Int32, Int32, Graphics)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap com o tamanho especificado e a resolução do objeto Graphics especificado.

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)

Parâmetros

width
Int32

A largura, em pixels, da nova Bitmap.

height
Int32

A altura, em pixels, do novo Bitmap.

g
Graphics

O objeto Graphics que especifica a resolução para o novo Bitmap.

Exceções

Comentários

O novo Bitmap que esse método cria usa sua resolução horizontal e vertical das DpiX propriedades e DpiY de g, respectivamente.

Aplica-se a

Bitmap(Int32, Int32, PixelFormat)

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap com o tamanho e o formato especificados.

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)

Parâmetros

width
Int32

A largura, em pixels, da nova Bitmap.

height
Int32

A altura, em pixels, do novo Bitmap.

format
PixelFormat

O formato de pixel para o novo Bitmap. Deve especificar um valor que começa com Format.

Exceções

Um valor PixelFormat foi especificado, cujo nome não começa com Format. Por exemplo, especificar Gdi causará um ArgumentException, mas Format48bppRgb não.

Aplica-se a

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

Origem:
Bitmap.cs
Origem:
Bitmap.cs
Origem:
Bitmap.cs

Inicializa uma nova instância da classe Bitmap com o tamanho, o formato de pixel e os dados de pixel especificados.

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)

Parâmetros

width
Int32

A largura, em pixels, da nova Bitmap.

height
Int32

A altura, em pixels, do novo Bitmap.

stride
Int32

Inteiro que especifica o deslocamento de byte entre o início de uma linha de uma varredura e a linha seguinte. É normalmente (mas não necessariamente) o número de bytes no formato de pixel (por exemplo, 2 por 16 bits por pixel) multiplicado pela largura do bitmap. O valor passado para esse parâmetro deve ser um múltiplo de quatro.

format
PixelFormat

O formato de pixel para o novo Bitmap. Deve especificar um valor que começa com Format.

scan0
IntPtr

nativeint

Ponteiro para uma matriz de bytes que contém os dados de pixel.

Exceções

Um valor PixelFormat foi especificado, cujo nome não começa com Format. Por exemplo, especificar Gdi causará um ArgumentException, mas Format48bppRgb não.

Exemplos

O exemplo de código a seguir mostra como usar o Bitmap(Int32, Int32, Int32, PixelFormat, IntPtr) construtor . Este exemplo foi projetado para ser usado com Windows Forms e requer um PaintEventArgs parâmetro , que é um parâmetro do Paint evento.

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

Comentários

O chamador é responsável por alocar e liberar o bloco de memória especificado pelo scan0 parâmetro . No entanto, a memória não deve ser liberada até que o relacionado Bitmap seja liberado.

Aplica-se a