Represents an Encoder object that is initialized with the globally unique identifier for the quality parameter category.
Namespace:
System.Drawing.Imaging
Assembly:
System.Drawing (in System.Drawing.dll)
Visual Basic (Declaration)
Public Shared ReadOnly Quality As Encoder
Dim value As Encoder
value = Encoder.Quality
public static readonly Encoder Quality
public:
static initonly Encoder^ Quality
public static final var Quality : 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.
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.
Imports System
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 'Main
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 'Example_SetJPEGQuality
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;
}
}
Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
.NET Framework
Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
Reference