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.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; }
.NET Framework
Available since 1.1
Available since 1.1
Show: