首页 > 解决方案 > 如何在c#中压缩位图

问题描述

我有一个截取屏幕截图的代码,我需要压缩它才能发送它。以下代码将位图转换为流并对其进行压缩。我的问题是压缩结果始终是一个充满零的字节数组(在本例中是变量 bb)。

byte[] bb;
Bitmap bmp = this.screenshots.RemoveFromFront();
Stream stream = new MemoryStream();
EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
bmp.Save(stream, GetEncoder(ImageFormat.Jpeg), encoderParameters);
using (var compressStream = new MemoryStream())
using (var compressor = new DeflateStream(compressStream, CompressionMode.Compress))
{
       stream.CopyTo(compressor);
       compressor.Close();
       bb = compressStream.ToArray();
}

标签: c#bitmapcompressionmemorystreamdeflatestream

解决方案


推荐阅读