PHP Conference Nagoya 2025

Imagick::transparentPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::transparentPaintImageРисует пиксели прозрачными

Описание

public Imagick::transparentPaintImage(
    mixed $target,
    float $alpha,
    float $fuzz,
    bool $invert
): bool

Рисует пиксели, соответствующие целевому цвету, прозрачным. Метод доступен, если модуль Imagick скомпилировали с версией ImageMagick 6.3.8 или старше.

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

target

Целевой цвет для рисования

alpha

Уровень прозрачности: 1.0 полностью непрозрачный, тогда как 0.0 полностью прозрачен.

fuzz

Мера округления (fuzz). Например, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.

invert

Если true, закрашивает любой пиксель, который не соответствует целевому цвету.

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

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

Примеры

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

<?php
function transparentPaintImage($color, $alpha, $fuzz) {
$imagick = new \Imagick(realpath("images/BlueScreen.jpg"));

//Должен быть в формате, который поддерживает прозрачность
$imagick->setimageformat('png');

$imagick->transparentPaintImage(
$color, $alpha, $fuzz * \Imagick::getQuantum(), false
);

//Не требуется, но помогает убирать оставленные пиксели
$imagick->despeckleimage();

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

?>

Добавить

Примечания пользователей 1 note

up
1
josecarlosphp
9 months ago
The $color parameter can be a string like this:

"rgb(255, 255, 255)"

As you can guess, that example represents white color.
"rgb" indicates red-green-blue, and numeric values are amounts for each, from 0 to 255.

Black color it will be "rgb(0, 0, 0)".
Full red color it will be "rgb(255, 0, 0)".
To Top