2

我正在使用 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 脚本(在开发人员部分下) - 它只是不起作用......

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

谢谢!

4

1 回答 1

2

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.");
}
于 2013-04-25T08:33:47.293 回答