В общем, возникла для меня новая задача, на этот раз, по теме работы с изображениями на php. Задача вот в чем: нужно залить прозрачные места на изображении определенным цветом. То есть, вот картинка, контуры, внутри контуров - прозрачный фон. Вот эту прозрачность нужно сменить на какой-то цвет. Покопался, ничего подобного не нашел, в общем, кто покажет примерчик - буду очень благодарен!
Картинка в PNG? https://php.ru/manual/book.image.html 1. Создаешь truecolor изображение. 2. Заливаешь нужным цветом. 3. Поверх неё вставляешь своё изображение. 4. Сохраняешь.
Примерно так: PHP: <?php header ('Content-Type: image/png'); $filename = 'image.png'; //имя файла и его расположение $size = getimagesize($filename); //получаем размер изображения $image = imagecreatefrompng($filename); //получаем изображение для обработки $bg = imagecreatetruecolor($size[0], $size[1]); //создаем подложку изображения $fill = imagecolorallocate($bg, 255, 120, 5); //создаем цвет заливки imagefill($bg, 0, 0, $fill); //заливаем фон цветом imagecopy($bg, $image, 0, 0, 0, 0, $size[0], $size[1]); //сливаем изображения imagepng($bg); //выводим готовое изображение на экран ?> Результат:
@Sergey_Tsarev еще вопрос, а как сразу после слияния изображений цвет "19,126,0" заменить на прозрачный?
все, разобрался PHP: $transparent = imagecolorallocate($bg, 0, 126, 0); // выбираем зеленый цвет imagecolortransparent($bg,$transparent);
в создание сайтов я пришел из индустрии дизайна. Ответственно заявляю: на PHP реализовать такое будет сложно! Хотя...