I have a code that takes a screenshot and I need to compress it in order to send it. The following code converts a Bitmap into a stream and compresses it. My problem is that the compression outcome is always a byte array full of zeros (in this case it's the variable 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();
}