2013-12-11 3 views
0

나는 그러나 내가 자바 스크립트 함수에 반환 할 수 있도록 컨트롤러의 크기를 조정할 미디어 URL의 값을 얻을 필요가, 과수원 1.7.2에서컨트롤러에서 Orchard CMS ResizeMedia URL.

@Display.ResizeMediaUrl() 

를 사용하는 것을 시도하고있다.

MediaShapes.cs (Orchard.MediaProcessing.Shapes)에서

[shape] 
public void ResizeMediaUrl 

모양이 내가 볼 수 있지만이를 사용하는 방법을 모르겠어요. 컨트롤러에서.

답변

3

당신은 당신이 당신을 위해 이미지 크기를 조정합니다 GetImageProfileUrl를 호출 할 수 있습니다 당신이 컨트롤러 액션 내에서 생성자

private readonly IImageProfileManager _imageProfileManager; 

에서 설정 컨트롤러에 IImageProfileManager에 대한 참조가 필요합니다.

나는 이것을 ResizeMediaUrl 모양에서 해킹하고 모드, 정렬 및 색상 설정을 하드 코드했습니다.

예컨대

private string DoTheResize(int Width, int Height, string path) 
{ 
    var Mode = "pad"; 
    var Alignment = "middlecenter"; 
    var PadColor = "000000"; 

    var state = new Dictionary<string, string> { 
     {"Width", Width.ToString(CultureInfo.InvariantCulture)}, 
     {"Height", Height.ToString(CultureInfo.InvariantCulture)}, 
     {"Mode", Mode}, 
     {"Alignment", Alignment}, 
     {"PadColor", PadColor}, 
    }; 

    var filter = new FilterRecord 
    { 
     Category = "Transform", 
     Type = "Resize", 
     State = FormParametersHelper.ToString(state) 
    }; 

    var profile = "Transform_Resize" 
     + "_w_" + Convert.ToString(Width) 
     + "_h_" + Convert.ToString(Height) 
     + "_m_" + Convert.ToString(Mode) 
     + "_a_" + Convert.ToString(Alignment) 
     + "_c_" + Convert.ToString(PadColor); 

    var resizedImagePath = _imageProfileManager.GetImageProfileUrl(path, profile, filter); 
    return resizedImagePath; 
} 
+0

정말 도움이됩니다. – Xinan