c# convert image formats to jpg

前端 未结 5 1546
予麋鹿
予麋鹿 2020-12-28 15:42

I need to get a picture from the user, with different format extensions, and I want to always save it as \"jpg\", for easy handling. is there a good way do that in c# withou

5条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-28 15:59

    From: http://msdn.microsoft.com/en-us/library/system.drawing.imaging.encoderparameter.aspx

    private void VaryQualityLevel()
    {
    // Get a bitmap.
    Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg");
    ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
    
    // Create an Encoder object based on the GUID
    // for the Quality parameter category.
    System.Drawing.Imaging.Encoder myEncoder =
        System.Drawing.Imaging.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.
    EncoderParameters myEncoderParameters = new EncoderParameters(1);
    
    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 
        50L);
    myEncoderParameters.Param[0] = myEncoderParameter;
    bmp1.Save(@"c:\TestPhotoQualityFifty.jpg", jpgEncoder, 
        myEncoderParameters);
    
    myEncoderParameter = new EncoderParameter(myEncoder, 100L);
    myEncoderParameters.Param[0] = myEncoderParameter;
    bmp1.Save(@"c:\TestPhotoQualityHundred.jpg", jpgEncoder, 
        myEncoderParameters);
    
    // Save the bitmap as a JPG file with zero quality level compression.
    myEncoderParameter = new EncoderParameter(myEncoder, 0L);
    myEncoderParameters.Param[0] = myEncoderParameter;
    bmp1.Save(@"c:\TestPhotoQualityZero.jpg", jpgEncoder, 
        myEncoderParameters);
    
    }
    
    ...
    
    private ImageCodecInfo GetEncoder(ImageFormat format)
    {
    
        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
    
        foreach (ImageCodecInfo codec in codecs)
        {
            if (codec.FormatID == format.Guid)
            {
                return codec;
            }
        }
        return null;
    }
    

提交回复
热议问题