замените сплошной цвет в прозрачном PNG на imagick или GD - PullRequest
1 голос
/ 27 января 2011

У меня просто прозрачный PNG с изображением звезды в сплошном цвете, скажем, # FF0000;
Что я могу сделать, чтобы заменить или преобразовать в любой шестнадцатеричный цвет, выбранный моим пользователем?
Я посмотрел на PHP, но после попытки много кода, кажется, ничего не работает? (почти для всех функций imagick на PHP.net я получаю предупреждение: «Эта функция в настоящее время не документирована»)

На моем сервере я использую PHP версии 5.2.5

версия модуля imagick: 2.1.1 Версия ImageMagick: ImageMagick 6.4.1

GD Версия: в комплекте (совместимо с 2.0.34)

1 Ответ

1 голос
/ 27 января 2011

Предполагая, что звездный рисунок имеет однородный цвет, вы можете использовать следующую функцию:

function recolorStar($filename, $color) {
    $img = new Imagick($filename);
    $img->colorizeImage($color, 0.0);
    header('content-type: image/png');
    echo $img;
}

$ цвет должен быть указан в шестнадцатеричном формате RGB, например, "# 00FF00".

Вы можете изменить последние пару строк, если не хотите выводить их прямо в браузер.

...