Imagick::sigmoidalContrastImage
(PECL imagick 2, PECL imagick 3)
Imagick::sigmoidalContrastImage — Регулирует контраст изображения
Описание
public function Imagick::sigmoidalContrastImage(
bool $sharpen,
float $alpha,
float $beta,
int $channel = Imagick::CHANNEL_DEFAULT):
bool
Метод регулирует контрастность изображения нелинейным сигмоидальным алгоритмом.
Алгоритм увеличивает контрастность сигмоидальной передаточной функцией без насыщения светлых участков или теней.
Параметр alpha задаёт степень увеличения контрастности:
0.00 — без изменений, 3.00 — типичное значение,
20.00 — предельное.
Параметр beta определяет положение средних тонов в результирующем
изображении как долю квантового диапазона: 0.0 — белый,
0.5 — средний серый, 1.0 — чёрный
(чтобы получить значение для передачи, долю умножают на
getQuantumRange()['quantumRangeLong']).
Подробнее об алгоритме рассказывает раздел
» Примеры ImageMagick -- Изменения цвета — Сигмоидальная нелинейная контрастность.
Список параметров
sharpen
-
При передаче значения true контраст увеличивается, при false — уменьшается.
alpha
-
Степень изменения контрастности: 1.00 — незначительно,
5.00 — значительно, 20.00 — предельно.
beta
-
Точка перегиба градиента: произведение значения в диапазоне
от 0.00 до 1.00
и предельного для текущей сборки библиотеки ImageMagick значения квантового диапазона.
channel
-
Цветовые каналы, к которым требуется применить контраст.
Возвращаемые значения
При успешном выполнении функция возвращает true.
Ошибки
При ошибке функция выбрасывает исключение ImagickException.
Примеры
Пример #1
Пример создания градиентного изображения методом Imagick::sigmoidalContrastImage()
для плавного смешивания двух изображений, где смешивание задают параметры
alpha и beta
<?php
function generateBlendImage($width, $height, $alpha = 10, $beta = 0.5)
{
$imagick = new Imagick();
$imagick->newPseudoImage($width, $height, 'gradient:black-white');
$quanta = $imagick->getQuantumRange();
$imagick->sigmoidalContrastImage(true, $alpha, $beta * $quanta["quantumRangeLong"]);
return $imagick;
}