LoaderInterface を継承する新しいクラスを作成しました。私の目的は、透かしを適用してから、画像のサイズを変更してサムネイルにすることです...誰でもこれを行う方法を知っていますか? 問題は、私のクラスがフィルタ タイプをロードし、複数のフィルタ タイプを返すことができないことです...どうやってチェーンを作成しますか?
どうもありがとう。
ここに私のサンプルコードがあります
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;
}
}