SkiaSharp — уменьшить изображение и уменьшить качество (и, следовательно, размер изображения)C#

Место общения программистов C#
Anonymous
SkiaSharp — уменьшить изображение и уменьшить качество (и, следовательно, размер изображения)

Сообщение Anonymous »

Мы используем .NET 7 и SkiaSharp 2.88.3. У нас есть следующее действие контроллера, которое используется для извлечения изображения .jpg или .png с диска и его масштабирования в соответствии с параметром ScaleFactor ( означает исходный размер, 0,5 означает деление ширины и высоты пополам).

Код: Выделить всё

public IActionResult LoadImage(string imageName, double scaleFactor = 1.0)
{
if (imageName.IsNullOrEmpty())
{
return NotFound();
}

var imagePath = Path.Combine(_env.ContentRootPath, imageName);

var extension = Path.GetExtension(imagePath);
var contentType = MimeTypeMapping.GetMimeTypeFromExtension(extension);
var img = System.IO.File.OpenRead(imagePath);

var resizedImage = FileHelpers.ResizeImage(img, extension, scaleFactor);

return File(resizedImage, contentType);
}
Реализация FileHelpers.ResizeImage следующая:

Код: Выделить всё

public static Stream ResizeImage(Stream imgStream, string extension, double scaleFactor)
{
if (scaleFactor 

Подробнее здесь: [url]https://stackoverflow.com/questions/77037401/skiasharp-scale-image-down-and-reduce-quality-and-hence-image-size[/url]

Вернуться в «C#»