2

过去,我使用图像字段模块要求用户提供特定尺寸的图像,效果很好。我喜欢新的媒体库选择器字段,它与图像编辑器模块集成,允许裁剪和调整大小。

我想做的是使用媒体库选择器字段,但要求用户将图像裁剪和/或重新调整为特定尺寸。有没有办法以这种方式配置它?到目前为止,我想出的最好的方法是向用户提供一些帮助文本,建议他们将图像重新调整为所需的尺寸。

如果我必须让图像满足特定尺寸,我应该坚持使用图像字段还是媒体库选择器字段有更好的方法?

4

1 回答 1

4

您无法使用 Orchard 1.7+ 媒体处理功能强制为图像提供特定尺寸,但是您可以确保它以正确的尺寸显示。

Orchard 1.7 引入了媒体配置文件的概念,它有效地允许您创建一堆图像转换,命名它们,然后在整个站点中任意使用它们。

在最近的一个项目中,我收到了大量客户资料图片,用于 Orchard 网站上的推荐页面。它们以各种不同的尺寸提供,我知道我至少需要 2 种不同的尺寸(一种用于主推荐页面,另一种用于其他页面上显示的推荐小部件)。

在 Admin Dashboard 中,我转到 Media -> Profiles 并创建了一个名为 Customer_Profile_Regular 的新媒体配置文件,然后添加了一个 Resize 过滤器以将其缩小到 100x100px(resize 过滤器非常灵活,您可以通过实现轻松创建自己的过滤器IImageFilterProvider界面)。

我对第二个配置文件 Customer_Profile_Small 做了同样的事情,缩小到 50x50。

然后,使用形状跟踪,我覆盖了现有的媒体库选择器字段显示形状,并将其替换为:

@{
   var imagesField = Model.ContentItem.Testimonial.CustomerProfile;
}
@if(imagesField.MediaParts.Any()) {
    <div class="customer-profile-image">
        @Display.MediaUrl(Profile: "Customer_Profile_Regular", Path: imagesField.MediaParts.First().MediaUrl)
    </div>
}

对于推荐小部件,它只是一个创建类似形状覆盖的案例,提供其他配置文件名称。

现在我可以将任何图像上传到我的媒体库,并将其用作客户评价中的客户资料图像。Orchard 将根据我告诉它使用的配置文件自动调整图像大小(或对其执行其他操作),其结果存储在站点的媒体文件夹中,以便仅在必要时重新生成。

于 2013-10-16T09:20:25.560 回答