У меня есть снимок экрана, который я принимаю в своем мобильном приложении. Снимок экрана занимает около 32 КБ при сохранении в виде png на диске.Как уменьшить размер изображения в C# и .NET 3.5?
Я отправляю их на центральный SQL-сервер, а 32 КБ слишком большой для такого количества раз, что мне нужно будет сохранить этот снимок экрана (примерно 2500 раз в день).
Есть ли какие-то трюки, которые я могу сделать, чтобы сохранить его меньше?
Вот код, я использую в настоящее время, чтобы взять его из Bitmap
в байтах (для отправки на сервер для хранения):
MemoryStream stream = new MemoryStream();
_signatureImage.Save(stream, ImageFormat.Png);
return stream.ToArray();
_signatureImage
является Bitmap
и скриншот в вопросе.
Вот пример скриншота я спасительный:
Вещь, которые выскакивают на ум (но я не знаю, как сделать их):
- Снизить фактическая высота и ширина изображения (но, надеюсь, таким образом, чтобы не исказить его).
- Измените его на черно-белое изображение (не уверен, увижу ли я реальную экономию пространства)
- Сжатие его больше (мне это не нравится, потому что тогда оно не читается из базы данных) ,
Обратите внимание, что все это должно выполняться программно и не может занимать очень много времени, поэтому сложные манипуляции с изображениями отсутствуют.
Спасибо за любую помощь.
Я не вижу изображение, которое вы опубликовали (http-фильтрация на работе). Каковы размеры? – Kendrick
@ Kendrick Это 480 x 640. – jdmichal