Получить соотношение сторон (ширина и высота) загруженного изображения - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу проверить загрузку моего изображения в моем API. Я хочу разрешить только фотографии, которые находятся в ландшафтном режиме. Я также хотел бы проверить соотношение сторон. Это мой код для проверки, является ли iFormFile изображением:

    [HttpPost]
    public JsonResult Post(IFormFile file)
    {
        if (file.ContentType.ToLower() != "image/jpeg" &&
            file.ContentType.ToLower() != "image/jpg" &&
            file.ContentType.ToLower() != "image/png")
        {
            // not a .jpg or .png file
            return new JsonResult(new
            {
                success = false
            });
        }

        // todo: check aspect ratio for landscape mode

        return new JsonResult(new
        {
            success = true
        });
    }

Поскольку System.Drawing.Image больше не доступен, я не смог найти способ преобразовать iFormFile в объект с типом изображения, чтобы проверить ширину и высоту, чтобы вычислить его соотношение сторон. Как узнать ширину и высоту изображения с типом iFormFile в ASP.NET Core API 2.0?

1 Ответ

0 голосов
/ 05 ноября 2018

Поскольку System.Drawing.Image больше не доступен, я не смог найти способ преобразовать iFormFile в объект с типом изображения, проверить ширину и высоту, чтобы вычислить его соотношение сторон.

Это на самом деле не правильно. Microsoft выпустила System.Drawing.Common как NuGet , который обеспечивает кроссплатформенную графическую функциональность GDI +. API должен быть заменой любого старого System.Drawing кода:

using (var image = Image.FromStream(file.OpenReadStream()))
{
    // use image.Width and image.Height
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...