ImageResizer根本没有调整图像大小

时间:2014-04-22 23:03:50

标签: imageresizer

我有一个ASP.NET MVC 3项目,我安装了ImageResizer Mvc Web.Config包,它添加了所有必要的组件,并为我修改了我的Web.Config文件。

我的MVC视图中有以下代码:

<div id="heroimage" class="slideshow">
    <div>[LEFT]</div
    <div>[RIGHT]</div>
    <div>[INDICATOR]</div>
    @foreach (ICMSElement oHeroImage in Model.Elements("HeroImage")){
        <img src="images/@oHeroImage.Value" />       
    }
</div>

<div id="image-strip" class="viewer">
    <div class="slider">
        <ul>
            @foreach (ICMSElement oHeroImage in Model.Elements("HeroImage")){
                <li><img src="images/@oHeroImage.Value?width=100&height=100"></li>
            }
        </ul>
    </div>
</div>

第二个div中包含的图像没有调整大小。宽度和高度没有css会覆盖调整大小。

在ImageResizer的故障排除页面中,声明如果图像无法调整大小,则可能是以下原因之一:

您没有在Web.config文件的两个位置正确注册HttpModule。

(我使用了修改Web.Config的NuGet包)

您使用的是IIS 6(或更早版本)或IIS7 Classic Pipeline,并且未使用.jpg.ashx语法,并且尚未将所有请求都映射到ASP.NET运行时。

(我的IIS服务器在集成模式下运行IIS 7)

您正在使用ASP.NET MVC(并且路由冲突),但没有安装MvcRoutingShim插件。

(根据调试页面安装了MvcRoutingShim插件)

您错误地输入了查询字符串命令。

(我在上面的代码片段中没有这样做)

原始图片小于您要求的尺寸,并且您没有使用&amp; scale = both(默认行为是永不升级图片,但可以更改)

(本例中的默认图像尺寸为1280x800)

我的Resizer.Debug输出在这里:https://gist.github.com/Thoth2020/11197160

我的网站在布局页面中使用了基本标签,但它没有调整img的src属性。例如,我正在查看的页面呈现此img标记:

<img src="images/00100010_1200_800_slideshow_03.jpg?width=100&height=100">

与解释Razor语法的上述代码段相同。

所以,我想我不知道为什么这不能正常运作。

2 个答案:

答案 0 :(得分:0)

您有一个现有的控制器或另一个干扰ImageResizer的HttpModule。一种解决方法是使用fakeExtensions功能来避免匹配这些路由。这使您的网址看起来像image.jpg.ashx?width=400而不是image.jpg?width=400

如果您的CMS抽象出图像存储,并且未实现VirtualPathProvider,则可能需要实施IVirtualImageProvider来弥补CMS数据层与ImageResizer之间的差距。

但是,通常情况下,您可以使用我们现有的存储插件(SqlReader,S3Reader,VirtualFolder,RemoteReader)直接访问数据存储。

答案 1 :(得分:0)

我有同样的问题。 imageResizer正在保存并且显示图像很好但没有调整大小和裁剪或旋转功能都能正常工作。

我的问题已解决只需将两个名为Install-Package ImageResizer.WebConfigInstall-Package ImageResizer的nuget包添加到 web 项目中。我在我的类库项目中使用了它们,这些项目正在执行所有逻辑工作,但似乎在运行的程序集中也需要它们,无论是Web应用程序还是桌面。