Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan justera bildparametrar, till exempel kvalitet och komprimeringsnivå, men du måste veta vilka parametrar som stöds av en viss bildkodare. Klassen Image innehåller metoden GetEncoderParameterList så att du kan avgöra vilka bildparametrar som stöds för en viss kodare. Du anger kodaren med ett GUID. Metoden GetEncoderParameterList returnerar en matris med EncoderParameter objekt.
Exempel
Följande exempelkod matar ut parametrarna som stöds för JPEG-kodaren. Använd listan över parameterkategorier och associerade GUID:er i Encoder-klassöversikten för att fastställa kategorin för varje parameter.
private void GetSupportedParameters(PaintEventArgs e)
{
Bitmap bitmap1 = new Bitmap(1, 1);
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
EncoderParameters paramList = bitmap1.GetEncoderParameterList(jpgEncoder.Clsid);
EncoderParameter[] encParams = paramList.Param;
StringBuilder paramInfo = new StringBuilder();
for (int i = 0; i < encParams.Length; i++)
{
paramInfo.Append("Param " + i + " holds " + encParams[i].NumberOfValues +
" items of type " +
encParams[i].ValueType + "\r\n" + "Guid category: " + encParams[i].Encoder.Guid + "\r\n");
}
e.Graphics.DrawString(paramInfo.ToString(), this.Font, Brushes.Red, 10.0F, 10.0F);
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
Private Sub GetSupportedParameters(ByVal e As PaintEventArgs)
Dim bitmap1 As New Bitmap(1, 1)
Dim jpgEncoder As ImageCodecInfo = GetEncoder(ImageFormat.Jpeg)
Dim paramList As EncoderParameters = _
bitmap1.GetEncoderParameterList(jpgEncoder.Clsid)
Dim encParams As EncoderParameter() = paramList.Param
Dim paramInfo As New StringBuilder()
Dim i As Integer
For i = 0 To encParams.Length - 1
paramInfo.Append("Param " & i & " holds " & _
encParams(i).NumberOfValues & " items of type " & _
encParams(i).Type.ToString() & vbCr & vbLf & "Guid category: " & _
encParams(i).Encoder.Guid.ToString() & vbCr & vbLf)
Next i
e.Graphics.DrawString(paramInfo.ToString(), _
Me.Font, Brushes.Red, 10.0F, 10.0F)
End Sub
Private Function GetEncoder(ByVal format As ImageFormat) As ImageCodecInfo
Dim codecs As ImageCodecInfo() = ImageCodecInfo.GetImageEncoders()
Dim codec As ImageCodecInfo
For Each codec In codecs
If codec.FormatID = format.Guid Then
Return codec
End If
Next codec
Return Nothing
End Function
Kompilera koden
Det här exemplet kräver:
Ett Windows Forms-program.
En PaintEventArgs, som är en parameter för PaintEventHandler.
Se även
.NET Desktop feedback