GDI+、JPEG图像到内存流中发生的通用错误

GDI+、JPEG图像到内存流中发生的通用错误

这似乎是一个臭名昭著的错误在整个网络。由于我的方案不适合,所以我一直无法找到我的问题的答案。当我将图像保存到流中时,会引发异常。

奇怪的是,这对PNG非常有效,但是使用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();
    }}


好的,我已经试过了。

  1. 克隆图像并进行处理。
  2. 通过jpeg质量设置检索MIME的编码器。


慕的地6264312
浏览 551回答 3
3回答

守候你守候我

如果您收到了该错误,那么我可以说您的应用程序在某个目录上没有写权限。例如,如果试图将图像从内存流保存到文件系统,则可能会收到该错误。如果您正在使用XP,请确保为该文件夹上的aspnet帐户添加写权限。如果您使用的是windows服务器(2003,2008)或Vista,请确保为网络服务帐户添加写入权限。希望能帮上忙。
打开App,查看更多内容
随时随地看视频慕课网APP