Image.Save Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Salva essa imagem no fluxo especificado no formato especificado.
Sobrecargas
Save(String, ImageCodecInfo, EncoderParameters) |
Salva esse Image no arquivo especificado, com os parâmetros de codificador de imagens e codificador especificados. |
Save(Stream, ImageCodecInfo, EncoderParameters) |
Salva essa imagem no fluxo especificado, com os parâmetros de codificador de imagens e codificador especificados. |
Save(String, ImageFormat) |
Salva essa Image no arquivo especificado no formato especificado. |
Save(Stream, ImageFormat) |
Salva essa imagem no fluxo especificado no formato especificado. |
Save(String) |
Salva este Image no arquivo ou fluxo especificado. |
Save(String, ImageCodecInfo, EncoderParameters)
- Origem:
- Image.cs
- Origem:
- Image.cs
- Origem:
- Image.cs
Salva esse Image no arquivo especificado, com os parâmetros de codificador de imagens e codificador 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
O ImageCodecInfo para Image.
- encoderParams
- EncoderParameters
Um EncoderParameters a ser usado neste Image.
Exceções
filename
ou encoder
é null
.
A imagem foi salva com o formato de imagem incorreto.
- ou -
A imagem foi salva no mesmo arquivo do qual ela foi criada.
Exemplos
O exemplo a seguir cria um Bitmap objeto de um arquivo BMP. O código salva o bitmap em três arquivos JPEG, cada um com um nível de qualidade 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
Comentários
Não é permitido salvar a imagem no mesmo arquivo do qual ela foi construída e gera uma exceção.
Confira também
Aplica-se a
Save(Stream, ImageCodecInfo, EncoderParameters)
- Origem:
- Image.cs
- Origem:
- Image.cs
- Origem:
- Image.cs
Salva essa imagem no fluxo especificado, com os parâmetros de codificador de imagens e codificador 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
O ImageCodecInfo para Image.
- encoderParams
- EncoderParameters
Um EncoderParameters que especifica os parâmetros usados pelo codificador de imagem.
Exceções
stream
é null
.
A imagem foi salva com o formato de imagem incorreto.
Comentários
Não salve uma imagem no mesmo fluxo que foi usado para construir a imagem. Fazer isso pode danificar o fluxo.
A imagem deve ser salva no fluxo em um deslocamento de zero. Se algum dado adicional tiver sido gravado no fluxo antes de salvar a imagem, os dados da imagem no fluxo serão corrompidos.
Aplica-se a
Save(String, ImageFormat)
- Origem:
- Image.cs
- Origem:
- Image.cs
- Origem:
- Image.cs
Salva essa Image no arquivo especificado no 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
O ImageFormat para Image.
Exceções
filename
ou format
é null
.
A imagem foi salva com o formato de imagem incorreto.
- ou -
A imagem foi salva no mesmo arquivo do qual ela foi criada.
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
Aplica-se a
Save(Stream, ImageFormat)
- Origem:
- Image.cs
- Origem:
- Image.cs
- Origem:
- Image.cs
Salva essa imagem no fluxo especificado no 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
Um ImageFormat que especifica o formato da imagem salva.
Exceções
stream
ou format
é null
.
A imagem foi salva com o formato de imagem incorreto.
Comentários
Você deve evitar salvar uma imagem no mesmo fluxo que foi usado para construí-la. Fazer isso pode danificar o fluxo.
A imagem deve ser salva no fluxo em um deslocamento de zero. Se algum dado adicional tiver sido gravado no fluxo antes de salvar a imagem, os dados da imagem no fluxo serão corrompidos.
Aplica-se a
Save(String)
- Origem:
- Image.cs
- Origem:
- Image.cs
- Origem:
- Image.cs
Salva este Image no arquivo ou fluxo 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
Exceções
filename
é null
.
A imagem foi salva com o formato de imagem incorreto.
- ou -
A imagem foi salva no mesmo arquivo do qual ela foi criada.
Exemplos
O exemplo de código a seguir demonstra como chamar o Save método . Este exemplo foi projetado para ser usado com Windows Forms. Create um formulário que contém um botão chamado Button5
. Cole o código no formulário e associe o método ao evento do Click botão.
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
Comentários
Se nenhum codificador existir para o formato de arquivo da imagem, o codificador PNG (Portable Network Graphics) será usado. Quando você usa o Save método para salvar uma imagem gráfica como um arquivo WMF (Windows Metafile Format) ou EMF (Enhanced Metafile Format), o arquivo resultante é salvo como um arquivo PNG (Portable Network Graphics). Esse comportamento ocorre porque o componente GDI+ do .NET Framework não tem um codificador que você pode usar para salvar arquivos como arquivos .wmf ou .emf.
Não é permitido salvar a imagem no mesmo arquivo do qual ela foi construída e gera uma exceção.