JPEG图像的C#质量较低

我正在尝试在.net core 3中创建一个控制台应用程序,该应用程序可以从计算机成功获取位图并将其发送到另一台计算机。但是现在我想降低图像的质量并将其作为JPEG文件发送。

我看过互联网,但无法正常工作。我最近一次尝试使用以下MSDN网站。但是由于我的应用程序找不到ImagecodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);,因此使用这种方法会陷入GetEncoder的困境。我在GetEncoder中发现了System.Text.Encoding.Getencoding,但是这里getEncoder没有任何参数。

所以我的问题是我必须使用哪个命名空间,或者还有另一种降低JPEG图像质量的方法吗?

qq376055355 回答:JPEG图像的C#质量较低

尝试这个pictureBox.Image.Save(name,ImageFormat.Jpeg); 它将格式从原来的格式更改为.jpg

,

这是我将图片压缩为jpeg的功能

    public static System.Drawing.Imaging.ImageCodecInfo GetEncoder(System.Drawing.Imaging.ImageFormat format)
    {
        System.Drawing.Imaging.ImageCodecInfo[] codecs = System.Drawing.Imaging.ImageCodecInfo.GetImageDecoders();

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

    public static byte[] GetCompressedImage(System.Drawing.Image img,long quality)
    {
        System.Drawing.Imaging.ImageCodecInfo ici = GetEncoder(System.Drawing.Imaging.ImageFormat.Jpeg);
        System.Drawing.Imaging.EncoderParameters eps = new System.Drawing.Imaging.EncoderParameters(2);
        eps.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality,quality);
        eps.Param[1] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Compression,(long)System.Drawing.Imaging.EncoderValue.CompressionLZW);
        using (MemoryStream ms = new MemoryStream())
        {
            img.Save(ms,ici,eps);
            return ms.ToArray();
        }
    }
本文链接:https://www.f2er.com/3166485.html

大家都在问