相关疑难解决方法(0)

C#mvc图像上传调整大小服务器端

我有一个web应用程序,用户可以上传图像.我遇到的当前问题是正在上传的图像以原始格式保存到数据库中.当在网页上使用图像时,这会导致很多性能问题.我使用dotTrace来分析应用程序,我发现从数据库处理图像时会出现重大问题.

我的想法是在图像上传到服务器时调整图像大小.以下示例,我希望应用程序在用户上传新图像时执行此操作;

  1. 用户上传图像
  2. 在72 dpi时,图像的大小调整为7.500 x 7.500像素
  3. 图像正在保存到数据库中
  4. 原始文件被处置

唯一存储的图像是上面提到的图像,web应用程序包含动态调整大小的技术.

我已经在SO上阅读了几个主题.而且他们中的大多数都指向了ImageMagick的方向.这个工具在我的公司已经很熟悉,并且在PHP项目中使用.但是这个工具有没有任何好的和稳定的C#包装器?我已经找到了下面的工具,但他们要么在Béta发布,Alpha发布,要么当前没有更新.

ImageMagick.NET

ImageMagick APP

我也在SO上找到了这个话题.在本主题中,提供了以下代码示例;

private static Image CreateReducedImage(Image imgOrig, Size newSize)
{
    var newBm = new Bitmap(newSize.Width, newSize.Height);
    using (var newGrapics = Graphics.FromImage(newBm))
    {
        newGrapics.CompositingQuality = CompositingQuality.HighSpeed;
        newGrapics.SmoothingMode = SmoothingMode.HighSpeed;
        newGrapics.InterpolationMode = InterpolationMode.HighQualityBicubic;
        newGrapics.DrawImage(imgOrig, new Rectangle(0, 0, newSize.Width, newSize.Height));
    }

    return newBm;
}
Run Code Online (Sandbox Code Playgroud)

总之,我有问题;

  • 使用上面的示例,在性能方面是否有任何优势?
  • 我可以使用ImageMagick做一个好的,可靠的C#包装器吗?

欢迎任何有关表演的其他好建议!

c# asp.net asp.net-mvc image-processing

7
推荐指数
1
解决办法
5102
查看次数

"参数无效." 使用保存位图时

我试图保存具有指定编码质量的位图jpg格式.但是,在调用save方法时,我得到一个异常("参数无效.").

如果我省略了bmp.save中的最后两个参数,它可以正常工作.

        EncoderParameters eps = new EncoderParameters(1);
        eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 16);
        ImageCodecInfo ici = GetEncoderInfo("image/jpeg");
        string outfile = outputpath + "\\" + fileaddition + sourcefile.Name;
        bmp.Save(outfile,ici,eps );

        bmp.Dispose();
        image.Dispose();
        return true;
    }
    ImageCodecInfo GetEncoderInfo(string mimeType)
    {
        int j;
        ImageCodecInfo[] encoders;
        encoders = ImageCodecInfo.GetImageEncoders();
        for (j = 0; j < encoders.Length; ++j)
        {
            if (encoders[j].MimeType == mimeType)
                return encoders[j];
        }
        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c# exception bitmap

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×2

asp.net ×1

asp.net-mvc ×1

bitmap ×1

exception ×1

image-processing ×1