我正在尝试使用
@Display.ResizeMediaUrl()
在Orchard 1.7.2中,但我需要在控制器中获取已调整大小的媒体网址的值,以便将其返回到javascript函数。
我可以看到有一个
[shape]
public void ResizeMediaUrl
MediaShapes.cs(Orchard.MediaProcessing.Shapes)中的形状,但我不知道如何使用它。来自控制器。
答案 0 :(得分:3)
您需要在控制器中引用IImageProfileManager
,并在构造函数中设置
private readonly IImageProfileManager _imageProfileManager;
在“控制器操作”中,您可以调用GetImageProfileUrl
来调整图像大小。
我已将其从ResizeMediaUrl形状中删除,并对模式,对齐和颜色设置进行了硬编码。
e.g。
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;
}