Image.Save Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Guarda esta imagen en la secuencia especificada con el formato especificado.
Sobrecargas
Save(String, ImageCodecInfo, EncoderParameters) |
Guarda Image en el archivo especificado, con el codificador y los parámetros de codificador de imagen especificados. |
Save(Stream, ImageCodecInfo, EncoderParameters) |
Guarda esta imagen en la secuencia especificada, con el codificador y los parámetros de codificador de imagen especificados. |
Save(String, ImageFormat) |
Guarda Image en el archivo especificado con el formato especificado. |
Save(Stream, ImageFormat) |
Guarda esta imagen en la secuencia especificada con el formato especificado. |
Save(String) |
Guarda Image en la secuencia o archivo especificado. |
Save(String, ImageCodecInfo, EncoderParameters)
- Source:
- Image.cs
- Source:
- Image.cs
- Source:
- Image.cs
Guarda Image en el archivo especificado, con el codificador y los parámetros de codificador de imagen especificados.
public:
void Save(System::String ^ filename, System::Drawing::Imaging::ImageCodecInfo ^ encoder, System::Drawing::Imaging::EncoderParameters ^ encoderParams);
public void Save (string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams);
public void Save (string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters? encoderParams);
member this.Save : string * System.Drawing.Imaging.ImageCodecInfo * System.Drawing.Imaging.EncoderParameters -> unit
Public Sub Save (filename As String, encoder As ImageCodecInfo, encoderParams As EncoderParameters)
Parámetros
- encoder
- ImageCodecInfo
ImageCodecInfo para Image.
- encoderParams
- EncoderParameters
EncoderParameters que se debe utilizar para Image.
Excepciones
filename
o encoder
es null
.
La imagen se guardó con un formato de imagen incorrecto.
o bien
La imagen se guardó en el mismo archivo a partir del que se creó.
Ejemplos
En el ejemplo siguiente se crea un Bitmap objeto a partir de un archivo BMP. El código guarda el mapa de bits en tres archivos JPEG, cada uno con un nivel de calidad diferente.
#using <System.Drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
static ImageCodecInfo^ GetEncoderInfo( ImageFormat^ format );
int main()
{
Bitmap^ myBitmap;
ImageCodecInfo^ myImageCodecInfo;
Encoder^ myEncoder;
EncoderParameter^ myEncoderParameter;
EncoderParameters^ myEncoderParameters;
// Create a Bitmap object based on a BMP file.
myBitmap = gcnew Bitmap( "Shapes.bmp" );
// Get an ImageCodecInfo object that represents the JPEG codec.
myImageCodecInfo = GetEncoderInfo( ImageFormat->Jpeg );
// Create an Encoder object based on the GUID
// for the Quality parameter category.
myEncoder = Encoder::Quality;
// Create an EncoderParameters object.
// An EncoderParameters object has an array of EncoderParameter
// objects. In this case, there is only one
// EncoderParameter object in the array.
myEncoderParameters = gcnew EncoderParameters( 1 );
// Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter = gcnew EncoderParameter( myEncoder,__int64(25) );
myEncoderParameters->Param[ 0 ] = myEncoderParameter;
myBitmap->Save( "Shapes025.jpg", myImageCodecInfo, myEncoderParameters );
// Save the bitmap as a JPEG file with quality level 50.
myEncoderParameter = gcnew EncoderParameter( myEncoder,__int64(50) );
myEncoderParameters->Param[ 0 ] = myEncoderParameter;
myBitmap->Save( "Shapes050.jpg", myImageCodecInfo, myEncoderParameters );
// Save the bitmap as a JPEG file with quality level 75.
myEncoderParameter = gcnew EncoderParameter( myEncoder,__int64(75) );
myEncoderParameters->Param[ 0 ] = myEncoderParameter;
myBitmap->Save( "Shapes075.jpg", myImageCodecInfo, myEncoderParameters );
}
static ImageCodecInfo^ GetEncoderInfo( ImageFormat^ format )
{
int j;
array<ImageCodecInfo^>^encoders;
encoders = ImageCodecInfo::GetImageEncoders();
for ( j = 0; j < encoders->Length; ++j )
{
if ( encoders[ j ]->FormatID == format->Guid)
return encoders[ j ];
}
return nullptr;
}
using System;
using System.Drawing;
using System.Drawing.Imaging;
class Example_SetJPEGQuality
{
public static void Main()
{
Bitmap myBitmap;
ImageCodecInfo myImageCodecInfo;
Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
// Create a Bitmap object based on a BMP file.
myBitmap = new Bitmap("Shapes.bmp");
// Get an ImageCodecInfo object that represents the JPEG codec.
myImageCodecInfo = GetEncoderInfo("image/jpeg");
// Create an Encoder object based on the GUID
// for the Quality parameter category.
myEncoder = Encoder.Quality;
// Create an EncoderParameters object.
// An EncoderParameters object has an array of EncoderParameter
// objects. In this case, there is only one
// EncoderParameter object in the array.
myEncoderParameters = new EncoderParameters(1);
// Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter = new EncoderParameter(myEncoder, 25L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters);
// Save the bitmap as a JPEG file with quality level 50.
myEncoderParameter = new EncoderParameter(myEncoder, 50L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters);
// Save the bitmap as a JPEG file with quality level 75.
myEncoderParameter = new EncoderParameter(myEncoder, 75L);
myEncoderParameters.Param[0] = myEncoderParameter;
myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters);
}
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for(j = 0; j < encoders.Length; ++j)
{
if(encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
}
Imports System.Drawing
Imports System.Drawing.Imaging
Class Example_SetJPEGQuality
Public Shared Sub Main()
Dim myBitmap As Bitmap
Dim myImageCodecInfo As ImageCodecInfo
Dim myEncoder As Encoder
Dim myEncoderParameter As EncoderParameter
Dim myEncoderParameters As EncoderParameters
' Create a Bitmap object based on a BMP file.
myBitmap = New Bitmap("Shapes.bmp")
' Get an ImageCodecInfo object that represents the JPEG codec.
myImageCodecInfo = GetEncoderInfo(ImageFormat.Jpeg)
' Create an Encoder object based on the GUID
' for the Quality parameter category.
myEncoder = Encoder.Quality
' Create an EncoderParameters object.
' An EncoderParameters object has an array of EncoderParameter
' objects. In this case, there is only one
' EncoderParameter object in the array.
myEncoderParameters = New EncoderParameters(1)
' Save the bitmap as a JPEG file with quality level 25.
myEncoderParameter = New EncoderParameter(myEncoder, CType(25L, Int32))
myEncoderParameters.Param(0) = myEncoderParameter
myBitmap.Save("Shapes025.jpg", myImageCodecInfo, myEncoderParameters)
' Save the bitmap as a JPEG file with quality level 50.
myEncoderParameter = New EncoderParameter(myEncoder, CType(50L, Int32))
myEncoderParameters.Param(0) = myEncoderParameter
myBitmap.Save("Shapes050.jpg", myImageCodecInfo, myEncoderParameters)
' Save the bitmap as a JPEG file with quality level 75.
myEncoderParameter = New EncoderParameter(myEncoder, CType(75L, Int32))
myEncoderParameters.Param(0) = myEncoderParameter
myBitmap.Save("Shapes075.jpg", myImageCodecInfo, myEncoderParameters)
End Sub
Private Shared Function GetEncoderInfo(ByVal format As ImageFormat) As ImageCodecInfo
Dim j As Integer
Dim encoders() As ImageCodecInfo
encoders = ImageCodecInfo.GetImageEncoders()
j = 0
While j < encoders.Length
If encoders(j).FormatID = format.Guid Then
Return encoders(j)
End If
j += 1
End While
Return Nothing
End Function 'GetEncoderInfo
End Class
Comentarios
No se permite guardar la imagen en el mismo archivo desde el que se construyó y se produce una excepción.
Consulte también
Se aplica a
Save(Stream, ImageCodecInfo, EncoderParameters)
- Source:
- Image.cs
- Source:
- Image.cs
- Source:
- Image.cs
Guarda esta imagen en la secuencia especificada, con el codificador y los parámetros de codificador de imagen especificados.
public:
void Save(System::IO::Stream ^ stream, System::Drawing::Imaging::ImageCodecInfo ^ encoder, System::Drawing::Imaging::EncoderParameters ^ encoderParams);
public void Save (System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams);
public void Save (System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters? encoderParams);
member this.Save : System.IO.Stream * System.Drawing.Imaging.ImageCodecInfo * System.Drawing.Imaging.EncoderParameters -> unit
Public Sub Save (stream As Stream, encoder As ImageCodecInfo, encoderParams As EncoderParameters)
Parámetros
- encoder
- ImageCodecInfo
ImageCodecInfo para Image.
- encoderParams
- EncoderParameters
EncoderParameters que especifica los parámetros utilizados por el codificador de imágenes.
Excepciones
stream
es null
.
La imagen se guardó con un formato de imagen incorrecto.
Comentarios
No guarde una imagen en la misma secuencia que se usó para construir la imagen. Si lo hace, podría dañar la corriente.
La imagen debe guardarse en la secuencia en un desplazamiento de cero. Si se han escrito datos adicionales en la secuencia antes de guardar la imagen, los datos de imagen de la secuencia estarán dañados.
Se aplica a
Save(String, ImageFormat)
- Source:
- Image.cs
- Source:
- Image.cs
- Source:
- Image.cs
Guarda Image en el archivo especificado con el formato especificado.
public:
void Save(System::String ^ filename, System::Drawing::Imaging::ImageFormat ^ format);
public void Save (string filename, System.Drawing.Imaging.ImageFormat format);
member this.Save : string * System.Drawing.Imaging.ImageFormat -> unit
Public Sub Save (filename As String, format As ImageFormat)
Parámetros
- format
- ImageFormat
ImageFormat para Image.
Excepciones
filename
o format
es null
.
La imagen se guardó con un formato de imagen incorrecto.
o bien
La imagen se guardó en el mismo archivo a partir del que se creó.
Ejemplos
En el ejemplo de código siguiente se muestra cómo construir un mapa de bits a partir de un tipo y cómo usar el Save método . Para ejecutar este ejemplo, pegue el código en un formulario Windows Forms. Controle el evento del Paint formulario y llame al ConstructFromResourceSaveAsGif
método , pasando 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
Se aplica a
Save(Stream, ImageFormat)
- Source:
- Image.cs
- Source:
- Image.cs
- Source:
- Image.cs
Guarda esta imagen en la secuencia especificada con el formato especificado.
public:
void Save(System::IO::Stream ^ stream, System::Drawing::Imaging::ImageFormat ^ format);
public void Save (System.IO.Stream stream, System.Drawing.Imaging.ImageFormat format);
member this.Save : System.IO.Stream * System.Drawing.Imaging.ImageFormat -> unit
Public Sub Save (stream As Stream, format As ImageFormat)
Parámetros
- format
- ImageFormat
ImageFormat que especifica el formato de la imagen guardada.
Excepciones
stream
o format
es null
.
La imagen se guardó con un formato de imagen incorrecto.
Comentarios
Debe evitar guardar una imagen en la misma secuencia que se usó para construirla. Si lo hace, podría dañar la corriente.
La imagen debe guardarse en la secuencia en un desplazamiento de cero. Si se han escrito datos adicionales en la secuencia antes de guardar la imagen, los datos de imagen de la secuencia estarán dañados.
Se aplica a
Save(String)
- Source:
- Image.cs
- Source:
- Image.cs
- Source:
- Image.cs
Guarda Image en la secuencia o archivo especificado.
public:
void Save(System::String ^ filename);
public void Save (string filename);
member this.Save : string -> unit
Public Sub Save (filename As String)
Parámetros
Excepciones
filename
es null
.
La imagen se guardó con un formato de imagen incorrecto.
o bien
La imagen se guardó en el mismo archivo a partir del que se creó.
Ejemplos
En el ejemplo de código siguiente se muestra cómo llamar al Save método . Este ejemplo está diseñado para usarse con Windows Forms. Create un formulario que contiene un botón denominado Button5
. Pegue el código en el formulario y asocie el método con el evento del Click botón.
private:
void Button5_Click( System::Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
try
{
if ( image1 != nullptr )
{
image1->Save( "c:\\myBitmap.bmp" );
Button5->Text = "Saved file.";
}
}
catch ( Exception^ )
{
MessageBox::Show( "There was a problem saving the file."
"Check the file permissions." );
}
}
private void Button5_Click(System.Object sender, System.EventArgs e)
{
try
{
if (image1 != null)
{
image1.Save("c:\\myBitmap.bmp");
Button5.Text = "Saved file.";
}
}
catch(Exception)
{
MessageBox.Show("There was a problem saving the file." +
"Check the file permissions.");
}
}
Private Sub Button5_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button5.Click
Try
If (image1 IsNot Nothing) Then
image1.Save("c:\myBitmap.bmp")
Button5.Text = "Saved file."
End If
Catch ex As Exception
MessageBox.Show("There was a problem saving the file." _
& "Check the file permissions.")
End Try
End Sub
Comentarios
Si no existe ningún codificador para el formato de archivo de la imagen, se usa el codificador Portable Network Graphics (PNG). Cuando se usa el Save método para guardar una imagen gráfica como un archivo de formato de metarchivo de Windows (WMF) o formato de metarchivo mejorado (EMF), el archivo resultante se guarda como un archivo de gráficos de red portable (PNG). Este comportamiento se produce porque el componente GDI+ de .NET Framework no tiene un codificador que puede usar para guardar archivos como archivos .wmf o .emf.
No se permite guardar la imagen en el mismo archivo desde el que se construyó y se produce una excepción.