首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Drupal 8图像与图像风格

Drupal 8图像与图像风格
EN

Stack Overflow用户
提问于 2014-07-15 09:33:24
回答 7查看 32.2K关注 0票数 27

在drupal 7中,我使用函数image_style_url('style', uri)生成带有样式的新图像,并返回图像的路径。那么,在drupal 8中,什么将代替它呢?谢谢

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-07-15 12:43:15

根据change records

代码语言:javascript
复制
use Drupal\image\Entity\ImageStyle;

$path = 'public://images/image.jpg';
$url = ImageStyle::load('style_name')->buildUrl($path);
票数 63
EN

Stack Overflow用户

发布于 2015-12-01 16:55:05

您应该尽可能地使用新的Drupal函数。

相反,请使用:

代码语言:javascript
复制
use Drupal\file\Entity\File;
use Drupal\image\Entity\ImageStyle;

$fid = 123;
$file = File::load($fid);
$image_uri = ImageStyle::load('your_style-name')->buildUrl($file->getFileUri());

https://www.drupal.org/node/2050669编辑

代码语言:javascript
复制
$original_image = 'public://images/image.jpg';

// Load the image style configuration entity
use Drupal\image\Entity\ImageStyle;
$style = ImageStyle::load('thumbnail');

$uri = $style->buildUri($original_image);
$url = $style->buildUrl($original_image);
票数 18
EN

Stack Overflow用户

发布于 2018-02-11 07:33:36

在您的控制器和Drupal的其他OOP部分,您可以使用:

代码语言:javascript
复制
use Drupal\image\Entity\ImageStyle;

$path = 'public://images/image.jpg';
$url = ImageStyle::load('style_name')->buildUrl($path);

YOUR_THEME.theme文件中,在Error: Class 'ImageStyle' not found in YOURTHEMENAME_preprocess_node中,您可以使用折叠

代码语言:javascript
复制
 $path = 'public://images/image.jpg';
 $style = \Drupal::entityTypeManager()->getStorage('image_style')->load('thumbnail');
 $url = $style->buildUrl($path);

另一种方法是提供一个可呈现的数组,并让drupal呈现引擎呈现它。

代码语言:javascript
复制
$render = [
    '#theme' => 'image_style',
    '#style_name' => 'thumbnail',
    '#uri' => $path,
    // optional parameters
];
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24754661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档