Пакет изменения размера изображения - Lazziya.ImageResize для asp. net ошибка генерации страницы базового бритвы - PullRequest
0 голосов
/ 13 апреля 2020

Я использую пакет Image Resize - Lazziya.ImageResize v3 в приложении asp. net core (страница бритвы), чтобы загрузить изображение, а затем изменить его размер до 600x400.

Загруженное изображение - 1181x 1575 пикселей WxH размер.

Первая часть кода, который загружает изображение, работает нормально, но в Lazziya генерируется ошибка. Функция ImageResize ResizeUploadedFile(filePath);.

Ошибка генерируется даже img.ScaleByWidth(600).SaveAs(path, 95); если я использую img.ScaleAndCrop(600,400).SaveAs(path);, он показывает ту же ошибку.

Я не уверен, почему она генерирует эту ошибку, поскольку я использую функцию согласно документации

private string ProcessUploadedFile()
{
    string uniqueFileName = null;
    string filePath = null;

    if (NewsImageForUpload != null)
    {
        string uploadsFolder = Path.Combine(webHostEnvironment.WebRootPath, "images/news");
        uniqueFileName = Guid.NewGuid().ToString() + "_" + NewsImageForUpload.FileName;
         filePath = Path.Combine(uploadsFolder, uniqueFileName);
       // string fullPath = filePath.ToString();
        using (var fileStream = new FileStream(filePath, FileMode.Create))
        {
            NewsImageForUpload.CopyTo(fileStream);
        }
    }
    ResizeUploadedFile(filePath);
    return uniqueFileName;
}

private void  ResizeUploadedFile(string filePath)
{
   // string filePath = Path.Combine(webHostEnvironment.WebRootPath, "images/news");
   // filePath = Path.Combine(uniqueFileName, uniqueFileName);



    string path = Path.Combine(filePath);
    using (var img = Image.FromFile(path))
    {
        img.ScaleByWidth(600).SaveAs(path, 95);
    }
}

http://demo.ziyad.info/en/ImageResize

ДЕТАЛИ ОШИБКИ *

An unhandled exception occurred while processing the request.
ExternalException: A generic error occurred in GDI+.
System.Drawing.Image.Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
    Stack Query Cookies Headers Routing 
    ExternalException: A generic error occurred in GDI+.
        System.Drawing.Image.Save(string filename, ImageCodecInfo encoder, EncoderParameters encoderParams)
        LazZiya.ImageResize.SaveImage.SaveAs(Image img, string path, int quality)
        BookListRazor.Pages.Admin.News.NewsCreateModel.ResizeUploadedFile(string filePath) in NewsCreate.cshtml.cs
                    img.ScaleByWidth(600).SaveAs(path, 95);
BookListRazor.Pages.Admin.News.NewsCreateModel.ProcessUploadedFile() in NewsCreate.cshtml.cs
                ResizeUploadedFile(filePath);
BookListRazor.Pages.Admin.News.NewsCreateModel.OnPost() in NewsCreate.cshtml.cs
                            News.NewsImage = ProcessUploadedFile();
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory+GenericTaskHandlerMethod.Convert<T>(object taskAsObject)
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.ExecutorFactory+GenericTaskHandlerMethod.Execute(object receiver, object[] arguments)
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeHandlerMethodAsync()
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeNextPageFilterAsync()
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Rethrow(PageHandlerExecutedContext context)
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
    Microsoft.AspNetCore.Mvc.RazorPages.Infrastructure.PageActionInvoker.InvokeInnerFilterAsync()
    Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|24_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
    Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
    Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
    Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
    Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Logged|17_1(ResourceInvoker invoker)
    Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
    Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
    Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
...