Actualización: noviembre 2007
Encapsula mapas de bits de GDI+, que están formados por los datos de píxeles de una imagen de gráficos y sus atributos. Bitmap es un objeto que se utiliza para trabajar con imágenes definidas mediante datos de píxeles.
Espacio de nombres:
System.Drawing
Ensamblado:
System.Drawing (en System.Drawing.dll)
Visual Basic (Declaración)
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class Bitmap _
Inherits Image
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class Bitmap : Image
[SerializableAttribute]
[ComVisibleAttribute(true)]
public ref class Bitmap sealed : public Image
/** @attribute SerializableAttribute */
/** @attribute ComVisibleAttribute(true) */
public final class Bitmap extends Image
public final class Bitmap extends Image
Un mapa de bits está formado por los datos de píxeles de una imagen de gráficos y sus atributos. Hay muchos formatos estándar para guardar un mapa de bits en un archivo. GDI+ admite los formatos de archivo siguientes: BMP, GIF, EXIG, JPG, PNG y TIFF. Para obtener más información acerca de los formatos admitidos, vea Tipos de mapas de bits.
Puede crear imágenes a partir de archivos, secuencias y otros orígenes utilizando uno de los constructores de Bitmap y guardarlas en una secuencia o en el sistema de archivos con el método Save. Las imágenes se llevan a la pantalla o a la memoria utilizando el método DrawImage del objeto Graphics. Para obtener una lista de temas sobre cómo trabajar con archivos de imagen, vea Trabajar con imágenes, mapas de bits, iconos y metarchivos.
Nota: |
|---|
No es posible el acceso a la clase Bitmap en los dominios de las aplicaciones. Por ejemplo, si crea un AppDomain dinámico y varios pinceles, lápices y mapas de bits en ese dominio, y devuelve a continuación estos objetos al dominio de aplicación principal, puede utilizar correctamente los lápices y los pinceles. Sin embargo, si llama al método DrawImage para dibujar el objeto Bitmap que se va a convertir, recibirá la excepción siguiente. La interacción remota no puede encontrar el campo "imagen nativa" en el tipo "System.Drawing.Image". |
En el ejemplo de código siguiente se muestra cómo construir un nuevo Bitmap a partir de un archivo mediante los métodos GetPixel y SetPixel para volver a colorear la imagen. También utiliza las propiedades PixelFormat, Width y Height.
Este ejemplo se ha diseñado para utilizarlo con un formulario Windows Forms que contiene objetos Label, PictureBox y Button denominados Label1, PictureBox1 y Button1, respectivamente. Pegue el código en el formulario y asocie el método Button1_Click al evento Click del botón.
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
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.");
}
}
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." );
}
}
private Bitmap image1;
private void button1_Click(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.get_Width(); x++) {
for (y = 0; y < image1.get_Height(); y++) {
Color pixelColor = image1.GetPixel(x, y);
Color newColor = Color.FromArgb(pixelColor.get_R(), 0, 0);
image1.SetPixel(x, y, newColor);
}
}
// Set the PictureBox to display the image.
pictureBox1.set_Image(image1);
// Display the pixel format in label1.
label1.set_Text("Pixel format: "
+ image1.get_PixelFormat().ToString());
}
catch (ArgumentException exp) {
MessageBox.Show(("There was an error."
+ "Check the path to the image file."));
}
} //button1_Click
System..::.Object
System..::.MarshalByRefObject
System.Drawing..::.Image
System.Drawing..::.Bitmap
Seguridad para subprocesos
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
.NET Framework
Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
.NET Compact Framework
Compatible con: 3.5, 2.0, 1.0
Referencia
Otros recursos