phpday 2022

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(500500'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 add a note

User Contributed Notes 1 note

up
5
Maxim Lovchikov
11 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