C# есть ли способ минимизировать размер изображения в байтах перед отправкой на сервер с помощью sokcet
Я пытался разработать программу удаленного рабочего стола на языке C# и хочу уменьшить размер моего изображения в байтах. Вот моя попытка ниже до сих пор.
// int w = Screen.PrimaryScreen.Bounds.Width; int h = Screen.PrimaryScreen.Bounds.Height; // Size s = new Size(w, h); Bitmap ScreenImage = new Bitmap(w, h); Graphics graphics = Graphics.FromImage(ScreenImage); graphics.CopyFromScreen(0, 0, 0, 0, s); int width = ScreenImage.Width / 2; int height = ScreenImage.Height / 2; Size resize = new Size(width, height); Bitmap resizeImage = new Bitmap(ScreenImage, resize); // Bitmap To byte[] MemoryStream ms = new MemoryStream(); resizeImage.Save(ms, ImageFormat.Jpeg); ms.Position = 0; byte[] data = ms.ToArray(); byte[] compressedByte = Compress(data); public static Byte[] Compress(Byte[] buffer) { Byte[] compressedByte; using (MemoryStream ms = new MemoryStream()) { using (DeflateStream ds = new DeflateStream(ms, CompressionMode.Compress)) { ds.Write(buffer, 0, buffer.Length); } compressedByte = ms.ToArray(); } return compressedByte; }
Я попытался сделать растровое изображение измененным и сжатым, чтобы уменьшить его размер в байтах, но мне все равно нужно сделать его меньше. Может ли кто-нибудь дать мне другие способы? Заранее благодарю вас!
Что я уже пробовал:
Bitmap resizeImage = новое растровое изображение(ScreenImage, resize);
byte[] compressedByte = сжатие(данные);