繁体   English   中英

如何在不保存到文件的情况下将BMP转换为JPEG?

[英]How can I convert a BMP to JPEG without saving to file?

我有一个包含BMP图像的BMP图像对象,如何在不保存到文件的情况下将其转换为JPEG格式?

我需要知道的是转换后JPEG文件的大小,所以如果我有几个BMP图像,我想将它们中的每一个转换为JPEG,然后查看每个图像的大小。

我怎样才能做到这一点?

谢谢。

只需保存它流。 和外观尺寸。

private ImageCodecInfo GetEncoder(ImageFormat format)
    {

        ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();

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

    private void Form1_Load(object sender, EventArgs e)
    {

        Bitmap bmp1 = new Bitmap(@"C:\Users\ercan.acar\Pictures\Current CR Sticker.PNG");
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);

        System.Drawing.Imaging.Encoder myEncoder =System.Drawing.Imaging.Encoder.Quality;

        EncoderParameters myEncoderParameters = new EncoderParameters(1);

        EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder,
            50L);
        myEncoderParameters.Param[0] = myEncoderParameter;
        Stream stream=new MemoryStream();
        bmp1.Save(stream, jpgEncoder,myEncoderParameters);
        //bmp1.Save(@"C:\Users\ercan.acar\Documents\TestPhotoQualityFifty.jpg",);

        var size = stream.Length;

    }

如何使用像Magick.NET或类似的nuget包。 为什么重新发明轮子并关心编码,转换调整,优化(如果其他人已经为您完成此操作)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM