Encoder::Quality Field
Gets an Encoder object that is initialized with the globally unique identifier for the quality parameter category.
Assembly: System.Drawing (in System.Drawing.dll)
Field Value
Type: System.Drawing.Imaging::Encoder^The Quality category specifies the level of compression for an image. When used to construct an EncoderParameter, the range of useful values for the quality category is from 0 to 100. The lower the number specified, the higher the compression and therefore the lower the quality of the image. Zero would give you the lowest quality image and 100 the highest.
When you pass a parameter to an image encoder, the parameter is encapsulated in an EncoderParameter object. One of the fields of the EncoderParameter object is a GUID that specifies the category of the parameter. Use the static fields of the Encoder class to retrieve an Encoder that contains parameters of the desired category.
The image encoders that are built into GDI+ receive parameters that belong to several categories. The following table lists all the categories and the GUID associated with each category.
- ChrominanceTable
f2e455dc-09b3-4316-8260-676ada32481c
- ColorDepth
66087055-ad66-4c7c-9a18-38a2310b8337
- Compression
e09d739d-ccd4-44ee-8eba-3fbf8be4fc58
- LuminanceTable
edb33bce-0266-4a77-b904-27216099e717
- Quality
1d5be4b5-fa4a-452d-9cdd-5db35105e7eb
- RenderMethod
6d42c53a-229a-4825-8bb7-5c99e2b9a8b8
- SaveFlag
292266fc-ac40-47bf-8cfc-a85b89a655de
- ScanMethod
3a4e2661-3109-4e56-8536-42c156e7dcfa
- Transformation
8d0eb2d1-a58e-4ea8-aa14-108074b7b6f9
- Version
24d18c76-814a-41a4-bf53-1c219cccf797
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; }
Available since 1.1