razor - 如何使用 WebImage 在 Umbraco 中创建缩略图? (带 Razor )

标签 razor umbraco webimage

我正在使用 Umbraco 6。

我尝试为使用 Mediapicker 上传的每张照片创建 2 个缩略图。我的意思是 - 每张上传的照片都应该有 140x100 版本和 350 x 200 版本。

我不想使用 ImageGen。

所以我找到了这篇关于 WebImage 助手的文章 - 包含以下代码:

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

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

            imageThumbPath = @"images\thumbs\" + newFileName;
            photo.Resize(width: 60, height: 60, preserveAspectRatio: true,
               preventEnlarge: true);
            photo.Save(@"~\" + imageThumbPath);        
        }
    }
}

所以实际上我刚刚创建了一个新的 Razor 脚本(在“开发人员”部分下) - 但它不起作用......

我该怎么做?我所需要做的只是为使用媒体选择器上传的每张照片创建一个缩略图 - 然后在我的页面中使用它们。

谢谢!

最佳答案

Umbraco 会自动为保存到媒体中的每个图像创建缩略图(用于在媒体区域中显示)。要使用它,只需在获取媒体项的 umbracofile 后在图像名称及其扩展名之间添加 _thumb 即可。

这应该获取所有媒体库图像及其拇指(显然文件夹等需要以不同方式处理):

var rootMedia = new umbraco.cms.businesslogic.Media(-1);
var allMediaImages = rootMedia.GetChildMedia();

foreach(var mediaImage in allMediaImages)
{
  var fullPath = mediaImage.GetPropertyAsString("umbracoFile");
  var thumbPath = mediaImage.GetPropertyAsString("umbracoFile").Replace(".","_thumb.");
}

关于razor - 如何使用 WebImage 在 Umbraco 中创建缩略图? (带 Razor ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16203998/

相关文章:

razor - Umbraco、 Razor 和图片库

c# - WebMatrix 的 WebImage Helper 支持哪些图像文件类型?

javascript - 在 JS 中使用像素操作 (WebImage) 填充未知的不对称多边形

razor - 为什么添加 razorformat 会破坏 servicestack 最新 3.9.45.0 中的 Web 服务

asp.net-mvc-4 - 在 Windows 7 IIS 上部署时,MVC 4 Mobile Razor View 未呈现

javascript - 在选择元素的 onChange 事件之后渲染 Umbraco 内容

.net - 暗影 "Error Parsing XSLT File"

c# - MVC WebImage OutputCache 导致内容类型为 text/html

javascript - 如何安装和使用 jQuery Chosen 插件?

javascript - 通过 javaScript 或 jQuery 在鼠标单击时读取表格单元格值