【问题标题】:C# encode bitmap JPEG and save it to byte[]C# 编码位图 JPEG 并将其保存到 byte[]
【发布时间】:2014-06-04 15:24:01
【问题描述】:

我有这段代码可以将图像保存到磁盘

public static void SaveImage(Bitmap picture, string path)
    {

        // Comprimir
        ImageCodecInfo encoder = GetJPGEncoder();

        // 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;

        //picture.
        picture.Save(path, encoder, myEncoderParameters);

    }

但现在我需要以字节 [] 的形式获取结果。我找不到将结果存储在内存中以便将其转换为字节 [] 的方法。我考虑过在将文件保存到硬盘驱动器后加载文件,但这完全没有必要。有谁知道我能不能做到这一点?

【问题讨论】:

    标签: c# encoding bitmap jpeg


    【解决方案1】:

    使用这个:

    using(var stream = new MemoryStream())
    {
        picture.Save(stream, encoder, myEncoderParameters);
        return stream.ToArray();
    }
    

    【讨论】:

      【解决方案2】:

      使用MemoryStreamSave() 方法的重载之一采用 Stream

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-08
        相关资源
        最近更新 更多