phpThumb — возможно ли добавить более одного фильтра с помощью метода setParameter?

Я строю конструктор миниатюр с phpThumb (доступна реализация Джеймса Генриха Вот). По сути, я инкапсулирую phpThumb класс для создания миниатюр с синтаксисом вроде этого:

$thumbnail = \Helpers\Images::getThumbnail("/assets/images/sample.png", [
"width" => 150,
"filters" => [
"grayscale"]
]);

Это проверяет, существует ли изображение, для которого я запрашиваю миниатюру с заданным набором параметров и фильтров, и, если это так, просто дает мне URL-адрес этого ресурса. Если это не так, он обрабатывает изображение, сохраняет полученную миниатюру и дает мне URL этого недавно созданного ресурса.

Все идет нормально. Моя проблема возникает, когда я пытаюсь добавить более одного фильтра, например так:

$thumbnail = \Helpers\Images::getThumbnail("/assets/images/sample.png", [
"width" => 150,
"filters" => [
"blur" => 25,
"grayscale"]
]);

Внутренне я делаю это:

    /**
* more filter cases here
*/
} elseif ($filter === "blur") {
if (!empty($parameters)) {
if (sizeof($parameters === 1)) {
$value = current($parameters);

if (is_numeric($value)) {
if ($value >= 0) {
if ($value <= 25) {
$phpthumb->setParameter("fltr", implode("|", [
$filters[$filter],
$value
]));
}
}
}
}
}
} elseif ($filter === "brightness") {
/**
* more filter cases here
*/

$filters[$filter] это просто ассоциативный массив с различными кодами фильтров, такими как usm (Unsharpen), gblr (размытие по Гауссу) и так далее.

Похоже, ссылаясь на setParameter() метод несколько раз не работает так, как я хочу (или как должен).

Есть ли способ объединить разные фильтры, используя подход ОО?

0

Решение

Неважно, я решил это, изменив основную логику. Вызов setParameter() метод из цикла со всеми операциями, сохраненными в формате массива, исправил мою проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]