2016-04-20 3 views
1

Мы используем Symfony2 и LiipImagineBundle для создания эскизов загруженного пользователем контента.liip представляет комплект, создающий миниатюры, которые имеют одинаковый размер файла

Каждый миниатюра ровно 161kb, независимо от того, насколько он или как мало он имеет на изображении.

Вот мой конфигурационный файл для liip:

liip_imagine: 
    resolvers: 
     default: 
      web_path: ~ 
    filter_sets: 
     my_thumb: 
      quality: 75 
      filters: 
       thumbnail: { size: [80, 80], mode: outbound } 
     productvariant_preview: 
      filters: 
       resize: { size: [450, 450] } 
     productvariant_thumb: 
      filters: 
       resize: { size: [292, 292] } 
     productvariantdesign_thumb: 
      filters: 
       resize: { size: [231, 231] } 
     profiledesign_thumb: 
      filters: 
       resize: { size: [200, 200] } 
     asseenindesign_thumb: 
      filters: 
       resize: { size: [158, 158] } 
     homepage_slider: 
      filters: 
       resize: { size: [922, 388] } 
     homepage_featuredlink: 
      filters: 
       resize: { size: [450, 260] } 
     homepage_secondaryfeaturedlink: 
      filters: 
       resize: { size: [294, 188] } 
     homepage_productvariantdesign: 
      filters: 
       resize: { size: [223, 223] } 
     printcolor_thumbnail: 
      filters: 
       resize: { size: [30, 30] } 

Resize Filter:

namespace Imagine\Filter\Basic; 

use Imagine\Filter\FilterInterface; 
use Imagine\Image\ImageInterface; 
use Imagine\Image\BoxInterface; 

/** 
* A resize filter 
*/ 
class Resize implements FilterInterface 
{ 
    /** 
    * @var BoxInterface 
    */ 
private $size; 
private $filter; 

/** 
* Constructs Resize filter with given width and height 
* 
* @param BoxInterface $size 
* @param string  $filter 
*/ 
public function __construct(BoxInterface $size, $filter = ImageInterface::FILTER_UNDEFINED) 
{ 
    $this->size = $size; 
    $this->filter = $filter; 
} 

/** 
* {@inheritdoc} 
*/ 
public function apply(ImageInterface $image) 
{ 
    return $image->resize($this->size, $this->filter); 
} 
} 

Спасибо!

+1

Какой фильтр «изменяет размер»? Он не упоминается в официальной документации - существует только фильтр relative_resize (http://symfony.com/doc/current/bundles/LiipImagineBundle/filters.html)? – Miro

+0

Я добавил код фильтра в вопрос. – Jeremy

+0

@ Джереми, это не то, о чем говорит Миро. Встроенный фильтр для относительного изменения размера называется 'relative_resize', а не' resize' –

ответ

0

Я не 100% знает, что происходит, но с добавлением

драйвера: Imagick

исправил проблему.

Смежные вопросы