0

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;

    }
}
4

1 に答える 1

0

まったく同じものを探していましたが、役に立つ情報源が見つかりませんでした。そこで、独自の透かしフィルターを作成しました。必要に応じて使用できます。

透かしとサムネイルフィルターを組み合わせる方法を示す構成例があります。

https://github.com/SimonSimCity/WatermarkFilterBundle

于 2013-03-26T13:40:29.990 に答える