This repository has been archived on 2023-06-30. You can view files and clone it, but cannot push or open issues or pull requests.
2chBackAPI/DBControllers/ImageController.cs

44 lines
1.4 KiB
C#
Raw Permalink Normal View History

2022-12-14 00:18:23 +10:00
using SkiaSharp;
namespace NeDvachAPI.DBControllers
{
public class ImageController
{
public static bool CheckExtention(string extentionToCheck)
{
var supportedTypes = new[] { ".jpg", ".png", ".jpeg" };
if (supportedTypes.Contains(extentionToCheck.ToLower()))
{
return true;
}
else return false;
}
public static bool ResizeImage(string picPath, string smallPath, int width, int height)
{
2022-12-14 03:50:24 +10:00
2022-12-14 00:18:23 +10:00
var bitmap = SKBitmap.Decode(picPath);
2022-12-14 03:50:24 +10:00
double ratio = Math.Max((double)bitmap.Width / (double)width , (double)bitmap.Height / (double)height);
int targetWidth = (int)(bitmap.Width/ ratio);
int targetHeight = (int)(bitmap.Height / ratio);
Console.WriteLine($"Ресайзим картинку до {targetWidth} ширины и {targetHeight} высоты.");
var dstInfo = new SKImageInfo(targetWidth , targetHeight);
2022-12-14 00:18:23 +10:00
var image = SKImage.FromBitmap(bitmap.Resize(dstInfo, SKFilterQuality.Medium));
var data = image.Encode(SKEncodedImageFormat.Jpeg, 90);
using (var stream = new FileStream(smallPath, FileMode.Create, FileAccess.Write))
data.SaveTo(stream);
data.Dispose();
image.Dispose();
bitmap.Dispose();
return true;
}
}
}