Как сжать растровое изображение в c# - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть код, который делает снимок экрана, и мне нужно сжать его, чтобы отправить. Следующий код преобразует растровое изображение в поток и сжимает его. Моя проблема заключается в том, что результатом сжатия всегда является байтовый массив, полный нулей (в данном случае это переменная 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();
}
...