我尝试这种方法来获取图像尺寸:
{% set image_width = fields.sec_port_image.width %}
{% set image_height = fields.sec_port_image.height %}
<a href="{{ fields.sec_port_image|media }}" width="{{ image_width }}" height="{{ image_height }}">
但没有成功。我也尝试过:
{% set image_width = fields.sec_port_image.width|media %}
和
{% set image_width = fields.sec_port_image|media.width %}
但也没有成功。
Octobercms上是否可以使用树枝获取图像尺寸?
答案 0 :(得分:0)
扩展twig
以获得图像的原始大小。这样的事情应该可以工作(未经测试,但是您会明白的)
首先创建一个注册类,请在此处查看reference。
<?php
class Registration {
public function registerMarkupTags()
{
return [
'filters' => [
// A global function, i.e str_plural()
'image_width' => [$this, 'getImageWidth'],
'image_height' => [$this, 'getImageHeight'],
],
];
}
private $images = [];
public function getImageWidth($url) {
return $this->getImageSize($url) ? $this->getImageSize($url)['width'] : null;
}
public function getImageHeight($url) {
return $this->getImageSize($url) ? $this->getImageSize($url)['height'] : null;
}
private function getImageSize($url) {
if (!isset($this->images[$url])) {
$data = @getimagesize($url);
if ($data) {
$this->images[$url] = [
'width' => $data[0],
'height' => $data[1],
];
}else{
$this->images[$url] = false;
}
}
}
return $this->images[$url];
}
如果操作正确,则可以使用模板中的新过滤器
{% set source = fields.sec_port_image|media %}
<a href="{{ source }}" width="{{ source|image_width }}" height="{{ source|image_height }}">