Image.Save Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сохраняет данное изображение в указанный поток в указанном формате.
Перегрузки
Save(String, ImageCodecInfo, EncoderParameters) |
Сохраняет объект Image в указанный файл с заданным кодировщиком и определенными параметрами кодировщика изображения. |
Save(Stream, ImageCodecInfo, EncoderParameters) |
Сохраняет данное изображение в указанный поток с заданным кодировщиком и определенными параметрами кодировщика изображения. |
Save(String, ImageFormat) |
Сохраняет объект Image в указанный файл в указанном формате. |
Save(Stream, ImageFormat) |
Сохраняет данное изображение в указанный поток в указанном формате. |
Save(String) |
Сохраняет объект Image в указанный файл или поток. |
Save(String, ImageCodecInfo, EncoderParameters)
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
Сохраняет объект Image в указанный файл с заданным кодировщиком и определенными параметрами кодировщика изображения.
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)
Параметры
- encoder
- ImageCodecInfo
ImageCodecInfo для этой службы Image.
- encoderParams
- EncoderParameters
Параметры EncoderParameters, предназначенные для данного объекта Image.
Исключения
Параметр filename
или encoder
имеет значение null
.
Изображение сохранено в неправильном формате.
-или-
Изображение сохранено в тот же файл, из которого оно было создано.
Примеры
В следующем примере создается Bitmap объект из BMP-файла. Код сохраняет растровое изображение в три JPEG-файла, каждый из которых имеет свой уровень качества.
#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
Комментарии
Сохранение образа в том же файле, из который он был создан, не допускается и вызывает исключение.
См. также раздел
Применяется к
Save(Stream, ImageCodecInfo, EncoderParameters)
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
Сохраняет данное изображение в указанный поток с заданным кодировщиком и определенными параметрами кодировщика изображения.
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)
Параметры
- encoder
- ImageCodecInfo
ImageCodecInfo для этой службы Image.
- encoderParams
- EncoderParameters
Объект EncoderParameters, задающий параметры, которые используются кодировщиком изображения.
Исключения
stream
имеет значение null
.
Изображение сохранено в неправильном формате.
Комментарии
Не сохраняйте изображение в том же потоке, который использовался для создания образа. Это может привести к повреждению потока.
Изображение должно быть сохранено в потоке со смещением нуля. Если какие-либо дополнительные данные были записаны в поток перед сохранением образа, данные изображения в потоке будут повреждены.
Применяется к
Save(String, ImageFormat)
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
Сохраняет объект Image в указанный файл в указанном формате.
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)
Параметры
- format
- ImageFormat
ImageFormat для этой службы Image.
Исключения
Параметр filename
или format
имеет значение null
.
Изображение сохранено в неправильном формате.
-или-
Изображение сохранено в тот же файл, из которого оно было создано.
Примеры
В следующем примере кода показано, как создать растровое изображение из типа и как использовать Save метод . Чтобы выполнить этот пример, вставьте код в Форму Windows Forms. Обработайте событие формы Paint и вызовите ConstructFromResourceSaveAsGif
метод , передавая e
как 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
Применяется к
Save(Stream, ImageFormat)
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
Сохраняет данное изображение в указанный поток в указанном формате.
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)
Параметры
- format
- ImageFormat
Объект ImageFormat, который указывает формат сохраняемого изображения.
Исключения
Параметр stream
или format
имеет значение null
.
Изображение сохранено в неправильном формате.
Комментарии
Не следует сохранять изображение в том же потоке, который использовался для его создания. Это может привести к повреждению потока.
Изображение должно быть сохранено в потоке со смещением нуля. Если какие-либо дополнительные данные были записаны в поток перед сохранением образа, данные изображения в потоке будут повреждены.
Применяется к
Save(String)
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
- Исходный код:
- Image.cs
Сохраняет объект Image в указанный файл или поток.
public:
void Save(System::String ^ filename);
public void Save (string filename);
member this.Save : string -> unit
Public Sub Save (filename As String)
Параметры
Исключения
filename
имеет значение null
.
Изображение сохранено в неправильном формате.
-или-
Изображение сохранено в тот же файл, из которого оно было создано.
Примеры
В следующем примере кода показано, как вызвать Save метод . Этот пример предназначен для использования с Windows Forms. Create форму, содержащую кнопку с именем Button5
. Вставьте код в форму и свяжите метод с событием кнопки Click .
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
Комментарии
Если для формата файла изображения не существует кодировщика, используется кодировщик PNG. При использовании Save метода для сохранения графического изображения в формате WINDOWS (WMF) или расширенном формате метафайла (EMF) полученный файл сохраняется как PNG-файл. Это происходит потому, что компонент GDI+ платформа .NET Framework не имеет кодировщика, который можно использовать для сохранения файлов в формате WMF или .emf.
Сохранение образа в том же файле, из который он был создан, не допускается и вызывает исключение.