我正在尝试使用
@Display.ResizeMediaUrl()
在 Orchard 1.7.2 中,但是我需要在控制器中获取调整大小的 Media url 的值,以便可以将其返回给 javascript 函数。
我可以看到里面有一个
[shape]
public void ResizeMediaUrl
MediaShapes.cs (Orchard.MediaProcessing.Shapes) 中的形状,但我不确定如何使用它。从控制器。
我正在尝试使用
@Display.ResizeMediaUrl()
在 Orchard 1.7.2 中,但是我需要在控制器中获取调整大小的 Media url 的值,以便可以将其返回给 javascript 函数。
我可以看到里面有一个
[shape]
public void ResizeMediaUrl
MediaShapes.cs (Orchard.MediaProcessing.Shapes) 中的形状,但我不确定如何使用它。从控制器。
您需要IImageProfileManager
在构造函数中设置的控制器中引用
private readonly IImageProfileManager _imageProfileManager;
在控制器动作中,您可以调用GetImageProfileUrl
它将为您调整图像大小。
我已经从 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;
}