我正在使用 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/