c#将图像格式转换为jpg

标签 c# image image-processing

我需要从用户那里获取一张图片,具有不同的格式扩展名,并且我希望始终将其保存为“jpg”,以便于处理。 有没有在不影响质量的情况下在 C# 中做到这一点的好方法?

最佳答案

发件人: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;
}

关于c#将图像格式转换为jpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894836/

相关文章:

image-processing - 如何用openCV检测圆圈组?

c# - 什么构成了昂贵的方法或资源?

c# - 比较两个不同枚举的最佳方法是什么?

c# - 正则表达式——去掉双空格?

python - Matplotlib 将图像文件旋转 X 度

ios - Swift 3 或 4 保存到自定义相册会创建重复图像

c# - Linq 查询 : where condition yields an empty sequence even if there should be one match

jquery - 使用 jquery 对图像重新排序

python - 如何从角点检测给出的点数组中检测特定的坐标点?

c++ - bmp to raw 奇怪的问题