Как создать Thumbnail в Umbraco, используя WebImage? (с бритвой)

Я использую Umbraco 6.

Я пытаюсь создать 2 эскиза для каждой фотографии, которую я загружаю с помощью Mediapicker. Я имею в виду - каждая загружаемая фотография должна иметь версию 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 (в разделе для разработчиков) - и он просто не работает...

Как мне это сделать? Все, что мне нужно сделать, это просто создать миниатюру для каждой фотографии, которую я загружаю с помощью средства выбора мультимедиа, и использовать их на своих страницах.

Спасибо!

1 ответ

Umbraco автоматически создает миниатюру (для отображения в области мультимедиа) для каждого изображения, сохраненного в мультимедиа. Чтобы использовать его, просто добавьте _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.");
}
Другие вопросы по тегам