2013-04-24 56 views
2

我使用的是Umbraco 6.如何使用WebImage在Umbraco中創建縮略圖? (with Razor)

我嘗試爲每張使用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);   
     } 
    } 
} 

所以其實我剛剛創建了一個新的剃刀腳本(下開發部分) - 它只是沒有按」 t work ...

我該怎麼辦?我需要做的只是爲每張使用媒體選擇器上傳的照片創建縮略圖 - 然後在我的頁面中使用它們。

謝謝!

回答

2

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."); 
} 
+0

謝謝,但我想控制縮略圖的大小 - 140x100,350x200和250x180 - 是有可能嗎? – 2013-04-25 19:25:18

+0

@MenahemGil最簡單的答案是使用imagegen - 但你也可以使用webimage庫,如:http://stackoverflow.com/questions/4535193/webimage-crop-to-square – amelvin 2013-04-26 07:42:38

+2

你可以在開發人員/數據類型/上傳,並自動創建 – BoKDamgaard 2013-06-19 09:10:59