Namespace:System.Drawing
Assembly:System.Drawing.dll
将此图像以指定的格式保存到指定的流中。
重载
方法名称 | 说明 |
---|---|
Save(String, ImageCodecInfo, EncoderParameters) | 使用指定的编码器和图像编码器参数,将该 Image 保存到指定的文件。 |
Save(Stream, ImageCodecInfo, EncoderParameters) | 使用指定的编码器和图像编码器参数,将该图像保存到指定的流。 |
Save(String, ImageFormat) | 将此 Image 以指定格式保存到指定文件。 |
Save(Stream, ImageFormat) | 将此图像以指定的格式保存到指定的流中。 |
Save(String) | 将该 Image 保存到指定的文件或流。 |
Save(String, ImageCodecInfo, EncoderParameters)
使用指定的编码器和图像编码器参数,将该 Image
保存到指定的文件。
public void Save (string filename, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams);
参数
filename
String
字符串,包含要将此 Image
保存到的文件的名称。
encoder
ImageCodecInfo
用于此 ImageCodecInfo
的 Image
。
encoderParams
EncoderParameters
用于该 EncoderParameters
的 Image
。
异常
ArgumentNullException
filename
或 encoder
为 null
.
ExternalException
该图像以错误的图像格式保存。
- 或 -
该图像被保存到创建该图像的文件。
示例
下面的示例从 BMP
文件创建一个 Bitmap
对象。 该代码将位图保存为三个 JPEG
文件,每个文件都有不同的质量级别。
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;
}
}
备注
不允许将图像保存到从中构建它的文件,并且会引发异常。
Save(Stream, ImageCodecInfo, EncoderParameters)
使用指定的编码器和图像编码器参数,将该图像保存到指定的流。
public void Save (System.IO.Stream stream, System.Drawing.Imaging.ImageCodecInfo encoder, System.Drawing.Imaging.EncoderParameters encoderParams);
参数
stream
Stream
将在其中保存图像的 Stream
。
encoder
ImageCodecInfo
用于此 ImageCodecInfo
的 Image
。
encoderParams
EncoderParameters
一个 EncoderParameters
,它指定图像编码器使用的参数。
异常
ArgumentNullException
stream
为 null
。
ExternalException
该图像以错误的图像格式保存。
备注
不要将图像保存到用于构造映像的相同流中。 这样做可能会损坏流。
必须将该图像保存到流中偏移量为零的位置。 如果在保存映像之前已向流中写入任何其他数据,则流中的图像数据将损坏。
Save(String, ImageFormat)
将此 Image
以指定格式保存到指定文件。
public void Save (string filename, System.Drawing.Imaging.ImageFormat format);
参数
filename
String
字符串,包含要将此 Image
保存到的文件的名称。
format
ImageFormat
用于此 ImageFormat
的 Image
。
异常
ArgumentNullException
filename
或 format
为 null
.
ExternalException
该图像以错误的图像格式保存。
- 或 -
该图像被保存到创建该图像的文件。
示例
下面的代码示例演示如何从类型构造位图,以及如何使用 Save
方法。 若要运行此示例,请将代码粘贴到 Windows 窗体中。 处理窗体的 Paint
事件,并调用 ConstructFromResourceSaveAsGif
方法,并将 e 作为 PaintEventArgs
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();
}
Save(Stream, ImageFormat)
将此图像以指定的格式保存到指定的流中。
public void Save (System.IO.Stream stream, System.Drawing.Imaging.ImageFormat format);
参数
stream
Stream
将在其中保存图像的 Stream
。
format
ImageFormat
ImageFormat
,指定保存的图像的格式。
异常
ArgumentNullException
stream
或 format
为 null
。
ExternalException
该图像以错误的图像格式保存
备注
应避免将图像保存到用于构造它的同一个流中。 这样做可能会损坏流。
必须将该图像保存到流中偏移量为零的位置。 如果在保存映像之前已向流中写入任何其他数据,则流中的图像数据将损坏。
Save(String)
将该 Image
保存到指定的文件或流。
public void Save (string filename);
参数
filename
String
字符串,包含要将此 Image
保存到的文件的名称。
异常
ArgumentNullException
filename
是 null
.
ExternalException
该图像以错误的图像格式保存。
- 或 -
该图像被保存到创建该图像的文件。
示例
下面的代码示例演示如何调用 Save
方法。 此示例旨在与 Windows
窗体一起使用。 创建一个包含名为 Button5
的按钮的窗体。 将代码粘贴到窗体中,并将该方法与按钮的 Click
事件相关联。
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.");
}
}
备注
如果图像的文件格式不存在编码器,则使用可移植网络图形(PNG
)编码器。 当使用 Save
方法将图形图像保存为 Windows
图元文件格式(WMF
)或增强型图元文件格式(EMF
)文件时,生成的文件将另存为可移植网络图形(PNG)文件。 出现此行为是因为 .NET Framework
的 GDI+
组件没有可用于将文件另存为 .wmf
或 .emf
文件的编码器。
不允许将图像保存到从中构建它的文件,并且会引发异常。