مشاركة عبر


كيفية القيام بما يلي: تحديد معلمات المعتمدة بواسطة أداة ترميز

You can adjust نسخة معلمات, such كـ جودة و ضغط المستوى, but you must know which معلمات are supported بواسطة a given نسخة encoder. The Image فئة provides the GetEncoderParameterList أسلوب so that you can determine which نسخة معلمات are supported for a particular encoder. You specify the encoder مع a معرّف فريد عالمي. The GetEncoderParameterList أسلوب إرجاع an مصفوفه من EncoderParameter الكائنات.

مثال

The following مثال تعليمات برمجية مخرجات the supported معلمات for the JPEG encoder. استخدم the قائمة of معلمة فئات و associated GUIDs في the Encoder class overview إلى determine the فئة for each معلمة.

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.GetImageDecoders()

    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
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.GetImageDecoders();

    foreach (ImageCodecInfo codec in codecs)
    {
        if (codec.FormatID == format.Guid)
        {
            return codec;
        }
    }
    return null;
}

التحويل البرمجي للتعليمات البرمجية

يتطلب هذا المثال:

راجع أيضًا:

المهام

كيفية القيام بما يلي: تثبيت قائمة Encoders

المبادئ

أنواع صور نقطية

موارد أخرى

استخدام نسخة Encoders و وحدات فك ترميز في مدارة GDI + Detection Tool