我正在试图在银条纹内部进行裁剪。过去我们用过
$Article_Image->SetWidth(390)
有效。它返回了正确宽度的图像。但是我现在想要返回一个使用fill函数返回390 x 235图像的图像。到目前为止我得到的是“服务器错误”,但它不会返回任何有用的错误。
在我的新闻文章课程中,我有以下内容:
控制器 - 当前
class newsArticle extends Page {
private static $has_one = array(
'Article_Image' => 'Image'
);
public function ResizedImage() {
return $this->Article_Image()->Fit(390,235);
}
}
然后在我的页面模板中,我有以下内容:
模板 - 当前
<% if $Article_Image %>
<div class="col-md-5 col-lg-4 nopadding">
$ResizedImage()
</div>
<% end_if %>
已经尝试
我已经尝试在模板中执行$ Article_Image-&gt; Fit(390,235),但它不起作用。我也尝试了以下代码,但它返回错误'无法在非成员对象上调用方法Fit()
控制器 - 已经尝试
class newsArticle extends Page {
private static $has_one = array(
'Article_Image' => 'Image'
);
public function ResizedImage($Image) {
return $Image->Fit(390,235);
}
}
模板 - 已尝试
<% if $Article_Image %>
<div class="col-md-5 col-lg-4 nopadding">
$ResizedImage($Article_Image)
</div>
<% end_if %>
如何让它返回适合特定尺寸的图像?我确信它可以完成,因为Silverstripe的文档中已经提到过: https://docs.silverstripe.org/en/4/developer_guides/files/images/
我正在使用silverstripe 3.1.12
答案 0 :(得分:1)
最简单的方法是在模板中执行以下操作。
$Article_Image.CroppedImage(390,235)
您的控制器中不需要ResizedImage
功能。
这是版本3文档的链接:
Fit方法在SS4中引入。