Сжимаем изображения JPEG на сервере Asp.Net MVC средствами C#

.

Как правило при загрузке изображений на сайт Asp.Net MVC разработчику нужно предусмотреть сжатие изображений,  место на хостинге не резиновое, да и загрузка сжатых изображений будет происходить гораздо быстрее. Установить уровень сжатия изображения в формате Jpeg при загрузке на сервер легко. Для этого нам нужно создать объект EncoderParameters, который инкапсулирует массив EncodeParameter объектов, а EncodeParameter в свою очередь используется для передачи значения или массива значений, кодировщика изображений. Попросту нам нужно создать EncoderParameters объект и передать его методу Save.




Итак я создам проект который в конце урока можно будет скачать. Начнем пожалуй с создания контроллера HomeController:

Определим пути для сохранения изображений в высоком, среднем и низком качестве и передадим его методу QualityLevelConverter экземпляра класса QualityJpegEncoder, который определим чуть ниже.

Загруженное изображение сохраняется в трех уровнях качества: характеризуется типом long и передается конструктору EncodeParameter. Уровень 0L — максимальное сжатие, 50L-среднее и 100L — минимальное.

В представлении Index загружаются и после загрузки отображаются загруженные изображения:

В итоге получилась маленькая загружалка — сжималка, но очень полезная штука.

Сжатие Изображений Сжимаем изображения JPEG на сервере Asp.Net MVC средствами C#

Готовый проект по сжатию изображений можете скачать здесь.