Как мне создать фильтр изображений в Symfony2 AvalancheImagineBundle? - PullRequest
1 голос
/ 02 октября 2011

Я использую Symfony 2, и я только что успешно установил AvalancheImagineBundle . Я создал свой собственный фильтр миниатюр, как описано в README, и создал второй фильтр под названием «профиль», который (на данный момент, чтобы убедиться, что он работает) делает то же самое, что и миниатюра.

// app/config/config.yml
# Avalanche Imagine Configuration
avalanche_imagine:
    web_root:     %kernel.root_dir%/../web
    cache_prefix: images/cache
    driver:       gd
    filters:
        my_thumb:
            type:    thumbnail
            options: { size: [100, 100], mode: outbound }
        profile:
            type:    thumbnail         <-- HOW DO I DEFINE OTHER TYPES?
            options: { size: [200, 200], mode: outbound }

Однако я не хочу, чтобы профиль был миниатюрой. Мой вопрос: Как определить новые "типы" фильтров?

Редактировать: Я видел пример , который дает README, но я не могу понять, как написать свой собственный фильтр. Я хочу написать простой фильтр, который принимает параметр «ширина» и масштабирует изображение до этой ширины.

Обновление: Я некоторое время возился с этими фильтрами изображений, и я все еще так же потерян, как и раньше ... Может ли кто-нибудь дать мне подсказку в правильном направлении? Я работаю над проектом с открытым исходным кодом, если он кого-то поощряет :)

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Забавно ответить на ваш вопрос здесь, так как я являюсь создателем и разработчиком Imagine:)

Как правило, добавление фильтра в комплект состоит из нескольких этапов

  • Создание загрузчика фильтров - класс, который реализует Avalanche \ Bundle \ ImagineBundle \ Imagine \ Filter \ Loader \ LoaderInterface

  • Зарегистрируйте его в Symfony DIC в качестве службы и правильно пометьте его Вот как помечен загрузчик фильтра миниатюр по умолчанию Вы можете найти его в источнике пакета здесь - https://github.com/avalanche123/AvalancheImagineBundle/blob/master/Resources/config/imagine.xml#L100

  • Наконец, укажите свой фильтр в yaml, используйте любое значение, указанное в атрибуте «filter» вашего тега загрузчика:

    avalanche_imagine:
        filters:
            my_thumb:
                type:    <your filter name>
                options: { #your options# }
    

Дайте мне знать, если у вас возникнут какие-либо проблемы, кроме того, не стесняйтесь создавать проблемы в репозитории github пакета.

Ура!

1 голос
/ 02 октября 2011

Читали ли вы главу «Загрузка пользовательских фильтров» в README ? Он говорит вам, как настроить свой фильтр.

Пример реализации приведен в классе ThumbnailFilterLoader .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...