Symfony2 Avalanche_Imagine捆绑链

时间:2012-12-31 00:31:38

标签: symfony

我创建了一个继承LoaderInterface的新类。我的目标是应用水印,然后调整图像大小为缩略图... 任何人都知道这是怎么做到的?问题是我的类返回加载过滤器类型并且不能返回多于1种过滤器类型...那么如何创建一个链?

非常感谢。

这是我的示例代码

namespace Avalanche\Bundle\ImagineBundle\Imagine\Filter\Loader;

use Imagine\Image\Box;
use Imagine\Image\ManipulatorInterface;
use Imagine\Filter\Basic\Thumbnail;
use \Imagine\Filter\Basic\Paste;

class ThumbnailWatermarkFilterLoader implements LoaderInterface
{
    const WATERMARK_IMAGE_PATH = "watermark_image";
    const WATERMARK_FONT_PATH = "font";

    public function load(array $options = array())
    {
        $mode = $options['mode'] === 'inset' ?
            ManipulatorInterface::THUMBNAIL_INSET :
           ManipulatorInterface::THUMBNAIL_OUTBOUND;

           list($width, $height) = $options['size'];

           $watermark = new \Imagine\Gd\Image(imagecreatefrompng($options[self::WATERMARK_IMAGE_PATH]));
           $point = new \Imagine\Image\Point($width / 2  , $height /2);

           $thumb = new Paste($watermark, $point);


          return $thumb;

    }
}

1 个答案:

答案 0 :(得分:0)

我正在寻找完全相同,但没有找到有用的来源。 所以我去创建了自己的水印过滤器。如果你愿意,你可以使用它。

我有一个示例配置,向您展示如何将水印与缩略图过滤器结合使用。

https://github.com/SimonSimCity/WatermarkFilterBundle