PHP изменить прозрачный градиент цвета PNG изображения - PullRequest
0 голосов
/ 11 сентября 2011

У меня есть изображение здесь (прозрачное изображение в формате PNG)

enter image description here

Я хочу изменить на синий, есть ли функции или класс библиотеки для изменения моего изображения?Я знаю, что многие веб-сайты используют свою функцию для создания прозрачного GIF с цветом.

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 11 сентября 2011
$img = imagecreatefromgif("put here your image path");

// Grab all color indeces for the given image.
$indeces = array();
for ($y = 0; $y < $imgHeight; ++$y) {
    for ($x = 0; $x < $imgWidth; ++$x) {
        $index = imagecolorat($img, $x, $y);
        if (!in_array($index, $indeces)) {
            $indeces[] = $index;
        }
    }
}   

foreach ($indeces as $index) {
    // Grab the color info for the index.
    $colors = imagecolorsforindex($img, $index);

    // Here, you would make your color transformation.
    $red    = $colors['red'];
    $green  = $colors['green'];
    $blue   = $colors['blue'];
    $alpha  = $colors['alpha'];

    // Update the old color to the new one.
    imagecolorset($img, $index, $red, $green, $blue, $alpha);
}

Это непроверенный код.Фактическое преобразование цвета остается на ваше усмотрение, но до тех пор, пока вы используете одно и то же преобразование для всех индексов и не смешиваетесь с альфа-каналом, полученное изображение должно сохранять градиент.

Ссылка: http://www.php.net/manual/en/ref.image.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...