Перейти к содержанию

Оптимизация изображений для сайта на C#

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


В этой статье рассмотрим, как выполняется оптимизация изображений сайта на C#, используя библиотеку Magick.NET.

Я ожидаю от вас минимальные знания концепций Entity Framework Core, поэтому в некоторых местах, вдаваться в подробности не стану.

Создание проекта

Откройте Visual Studio 2022.

Создайте проект «Asp.Net Core Web Application(.Net Core)» с шаблоном MVC Template. В графе “Authentication type”, оставляем значение None.

  1. Откроем пакет NuGet и скачаем библиотеку Magick.NET-Q16-AnyCPU:

Оптимизация изображений в c#

Так же можете загрузить через Package Manager Console:

  1. Изменим представление Home/Index.cshtml, следующим образом:

С помощью данного представления, мы сможем осуществлять загрузку изображения. Благодаря установке атрибута формы enctype=»multipart/form-data» браузер будет знать, что вместе с формой надо передать файл.

  1. Для хранения загруженных файлов, создадим в проекте в каталоге wwwroot папку Files.

загрузка изображения в c# asp.net core

  1. Теперь определим в контроллере HomeController, действие LoadFile, которое будет загружать переданный файл:

После успешной загрузки файла, пока выполняем перенаправление пользователя на главную страницу.

  1. Пришло время выполнить сжатие загруженного изображения, для этого в контроллере Home, определим метод CompressImage:

Свойство Format, позволяет изменить формат изображения, мы оставляем изначальный. Свойство Quality – задает уровень сжатия изображения, чем меньше значение, тем меньше размер изображение, но тем хуже его качество. Поэкспериментируйте и подберите оптимальное значение для себя.  С помощью метода:

выполняем перезапись изображения.

  1. Для простоты примера, после загрузки изображения, будем выполнять его сжатие, и возвращать клиенту, для этого немного изменим код контроллера Home:

Был добавлен новый метод GetVirtualFile, который возвращает файл по виртуальному пути. Важно учитывать, что по умолчанию все пути к файлам в данном случае будут сопоставляться с папкой wwwroot. То есть нам надо помещать папки с файлами или отдельные файлы в каталог wwwroot.

Итог

Готово, запустите проект и проверьте его работу, убедитесь, что загруженное изображение уменьшилось в размере.

Оптимизация изображений для сайта

В моем случае, при уровне сжатии в 70, размер изображения уменьшается в треть:

уменьшение размера изображения в c#

При этом качество изображения не вооруженным глазом, не отличить. На этом статья «Оптимизация изображений для сайта на C#», подошла к концу, надеюсь вам было интересно.  Вы можете скачать исходный код в моем репозитории — Github.

Поделитесь вашим опытом в комментариях, как вы выполняете оптимизацию изображений для вашего сайта?

Так же вам может быть интересна предыдущая статья:

Магазин на Asp.Net Core MVC EF. Часть 1

Вы начинающий программист, который хочет изучить все тонкости языка C#?

Пройдите наш тест на 13 вопросов, чтобы узнать, как много вы знаете на самом деле!

C# Braincheck


Вы хотите научится писать код на языке программирования C#?

Создавать различные информационные системы, состоящие из сайтов, мобильных клиентов, десктопных приложений, телеграмм-ботов и т.д.

Переходите к нам на страницу Dijix и ознакомьтесь с условиями обучения, мы специализируемся только на индивидуальных занятиях, как для начинающих, так и для более продвинутых программистов. Вы можете взять как одно занятие для проработки интересующего Вас вопроса, так и несколько, для более плотной работы. Благодаря личному кабинету, каждый студент повысит качество своего обучения, в вашем распоряжении:

  • Доступ к пройденному материалу
  • Тематические статьи
  • Библиотека книг
  • Онлайн тестирование
  • Общение в закрытых группах

https://dijix.com.ua

Живи в своем мире, программируй в нашем.


 

Опубликовано в рубрикеЯзык Программирования C#
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x