यह पूरे वेब पर एक बदनाम त्रुटि का एक सा लगता है। इतना कि मैं अपनी समस्या का जवाब खोजने में असमर्थ रहा क्योंकि मेरा परिदृश्य फिट नहीं है। जब मैं छवि को स्ट्रीम पर सहेजता हूं तो एक अपवाद हो जाता है।
अजीब तरह से यह पूरी तरह से काम करता है, लेकिन jpg और gif के साथ उपरोक्त त्रुटि देता है, जो भ्रामक है।
बिना अनुमति के फ़ाइलों को सहेजने से संबंधित अधिकांश समान समस्याएँ हैं। विडंबना यह है कि एक मेमोरी स्ट्रीम का उपयोग करना है जैसा कि मैं कर रहा हूं ...।
public static byte[] ConvertImageToByteArray(Image imageToConvert)
{
using (var ms = new MemoryStream())
{
ImageFormat format;
switch (imageToConvert.MimeType())
{
case "image/png":
format = ImageFormat.Png;
break;
case "image/gif":
format = ImageFormat.Gif;
break;
default:
format = ImageFormat.Jpeg;
break;
}
imageToConvert.Save(ms, format);
return ms.ToArray();
}
}
अपवाद को अधिक विस्तार। इसका कारण इतने सारे मुद्दों की व्याख्या का अभाव है :(
System.Runtime.InteropServices.ExternalException was unhandled by user code
Message="A generic error occurred in GDI+."
Source="System.Drawing"
ErrorCode=-2147467259
StackTrace:
at System.Drawing.Image.Save(Stream stream, ImageCodecInfo encoder, EncoderParameters encoderParams)
at System.Drawing.Image.Save(Stream stream, ImageFormat format)
at Caldoo.Infrastructure.PhotoEditor.ConvertImageToByteArray(Image imageToConvert) in C:\Users\Ian\SVN\Caldoo\Caldoo.Coordinator\PhotoEditor.cs:line 139
at Caldoo.Web.Controllers.PictureController.Croppable() in C:\Users\Ian\SVN\Caldoo\Caldoo.Web\Controllers\PictureController.cs:line 132
at lambda_method(ExecutionScope , ControllerBase , Object[] )
at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters)
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassa.<InvokeActionMethodWithFilters>b__7()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
InnerException:
ठीक है मैंने अब तक कोशिश की है।
- छवि को क्लोन करना और उस पर काम करना।
- उस MIME के लिए एनकोडर को पुनः प्राप्त करना जो कि jpeg गुणवत्ता सेटिंग के साथ गुजरता है।