ASP.NET网页 - 使用WebImage调整大小和保存照片

Gar*_*wis 0 c# asp.net image-resizing razor

我正在使用ASP.NET网页创建一个表单,我可以在其中选择图像.我想将图像调整为各种不同的大小,以便我可以在我的网站上显示它们.

这适用于较小的图像(在文件大小),但我想要调整大小的图像来自我的数码单反相机,它们可以大到每个jpeg 14MB.我收到以下错误...

Maximum request length exceeded.
Run Code Online (Sandbox Code Playgroud)

我添加了web.config以下代码:

<?xml version="1.0"?>

<configuration>

    <system.web>
        <compilation debug="false" targetFramework="4.0" />
        <httpRuntime maxRequestLength="20480" />  
    </system.web>

</configuration>
Run Code Online (Sandbox Code Playgroud)

我不再收到错误,但实际上并没有做任何事情.它仍适用于较小的图像.

我在这里使用了这个教程:http://www.asp.net/web-pages/tutorials/files,-images,-and-media/9-working-with-images

我的代码如下:

@{  WebImage photo = null;
    var newFileName = "";
    var imagePath = "";
    var imageThumbPath  = "";

    if(IsPost){
        photo = WebImage.GetImageFromRequest();
        if(photo != null){
            newFileName = "Original_" + Path.GetFileName(photo.FileName);
            imagePath = @"images\" + newFileName;
            photo.Save(@"~\" + imagePath);

            newFileName = "Thumbnail_" + Path.GetFileName(photo.FileName);
            imagePath = @"images\" + newFileName;
            photo.Resize(width: 60, height: 60, preserveAspectRatio: true, preventEnlarge: true);
            photo.Save(@"~\" + imagePath);        
        }
    }
}

<!DOCTYPE html>

<html>
<head>
   <title>Resizing Image</title>
</head>

<body>

    <h1>Thumbnail Image</h1>
    <form action="" method="post" enctype="multipart/form-data">
        <fieldset>
            <legend> Creating Thumbnail Image </legend>

            <label for="Image">Image</label>
            <input type="file" name="Image" />
            <br/>
            <input type="submit" value="Submit" />
        </fieldset>
    </form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何想法为什么它不适用于更大的图像.任何帮助赞赏!

Lil*_*ver 8

微软的WebImage类是真的,真的很可怜.在阅读了源代码并发现前两页或三页中的10个关键错误后,我放弃了它.它不是服务器安全的.

我的imageresizing.net库旨在在服务器上运行,并更好地管理内存.对于SLR照片,您仍然需要大约100-200MB的RAM来解压缩单个图像,但如果您有这样的话,它应该可靠地完成工作.它已成功用于千兆像素大小的图像,因此只要你有一茶匙的RAM ,你的单反就会很容易.

以下是如何使用库上载,调整大小和保存的示例.使用上传的文件名是一个非常大的漏洞 - GUID是一个更安全的选择.

但是,由于库非常快,并且旨在支持单源映像,因此您可以考虑仅保存原始映像并动态生成缩略图.该DiskCache插件将他们缓存到磁盘静态文件,通过IIS服务-它提供了出色的性能.