PHP 8.4.0 RC2 available for testing

Imagick::levelImage

(PECL imagick 2, PECL imagick 3)

Imagick::levelImageРегулирует уровни изображения

Описание

public Imagick::levelImage(
    float $blackPoint,
    float $gamma,
    float $whitePoint,
    int $channel = Imagick::CHANNEL_DEFAULT
): bool

Регулирует уровни изображения, масштабируя цвета, попадающие между указанными белыми и чёрными точками, до полного доступного квантового диапазона. Предоставленные параметры представляют собой чёрные, средние и белые точки. Чёрная точка определяет самый тёмный цвет изображения. Цвета темнее точки чёрного устанавливаются на ноль. Средняя точка определяет гамма-коррекцию, применяемую к изображению. Белая точка определяет самый светлый цвет изображения. Для цветов ярче точки белого устанавливается максимальное квантовое значение.

Список параметров

blackPoint

Чёрная точка изображения.

gamma

Значение гаммы.

whitePoint

Белая точка изображения.

channel

Укажите любую константу канала, которая соответствует вашему режиму канала. Чтобы применить более чем к одному каналу, объедините константы типа канала с помощью побитовых операторов. Обратитесь к этому списку констант канала.

Возвращаемые значения

Функция в случае успешной работы возвращает true.

Ошибки

Функция выбрасывает исключение ImagickException, если возникла ошибка.

Примеры

Пример #1 Пример использования Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
$imagick = new \Imagick();
$imagick->newPseudoimage(500, 500, 'gradient:black-white');

$imagick->setFormat('png');
$quantum = $imagick->getQuantum();
$imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

header("Content-Type: image/png");
echo
$imagick->getImageBlob();
}

?>

add a note

User Contributed Notes 1 note

up
7
Maxim Lovchikov
13 years ago
I have a trouble with this method because think that quantum range is 0 - 255.
But quantum range for levelImage is 0-65535. You can get quantum range with Imagick::getQuantumRange
There is a right piece of code

$img->levelImage (0, 1.0, 65535);
To Top