Imagick::levelImage

(PECL imagick 2, PECL imagick 3)

Imagick::levelImage β€” Π Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΡ€ΠΎΠ²Π½ΠΈ изобраТСния

ОписаниС

public function 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();
}

?>
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 1 note

up
7
Maxim Lovchikov ΒΆ
15 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);