Image.Save Method (String, ImageCodecInfo, EncoderParameters)
.NET Framework (current version)
Saves this Image to the specified file, with the specified encoder and image-encoder parameters.
Assembly: System.Drawing (in System.Drawing.dll)
public void Save( string filename, ImageCodecInfo encoder, EncoderParameters encoderParams )
Parameters
- filename
-
Type:
System.String
A string that contains the name of the file to which to save this Image.
- encoder
-
Type:
System.Drawing.Imaging.ImageCodecInfo
The ImageCodecInfo for this Image.
- encoderParams
-
Type:
System.Drawing.Imaging.EncoderParameters
An EncoderParameters to use for this Image.
| Exception | Condition |
|---|---|
| ArgumentNullException | filename or encoder is null. |
| ExternalException | The image was saved with the wrong image format. -or- The image was saved to the same file it was created from. |
Saving the image to the same file it was constructed from is not allowed and throws an exception.
The following example creates a Bitmap object from a BMP file. The code saves the bitmap to three JPEG files, each with a different quality level.
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; } }
.NET Framework
Available since 1.1
Available since 1.1
Show: