Я использую пакет 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)