Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: замена цвета в изображении png на прозрачное

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: PHP код (другого варианта не знаю)
NN
Отправлено: 09 Ноября, 2014 - 21:57:52
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Задача: на сервере есть изображение png, надо сделать определенный цвет (например, белый) прозрачным и результирующее изображение сохранить туда же на сервер. Написала код, однако результирующее изображение получается без прозрачности! Что делать? Может быть, эта задача неразрешима? Вот код:

<?php
$image = imagecreatefrompng('images/Overlays/S48_0100.0.png');
if($image)
{
// Осуществляем проверку корректности компонентов RBG-цвета, переданных через GET-параметры
if($_GET['red'] > 250 && $_GET['green'] > 250 && $_GET['blue'] > 250)
{
$_GET['red'] = 255; $_GET['green'] = 255; $_GET['blue'] = 255;
}
// Получаем дескриптор цвета
$color = imagecolorallocate($image,$_GET['red'],$_GET['green'],$_GET['blue']);
imagecolortransparent($image,$color);
// Выводим изображение в файл
imagepng($image,'images/proba.png');
imagedestroy($image);
}
?>

Заранее благодарна за ответ
 
 Top
dXdYdZ
Отправлено: 10 Ноября, 2014 - 00:16:03
Post Id


Посетитель


Покинул форум
Сообщений всего: 271
Дата рег-ции: Нояб. 2013  


Помог: 11 раз(а)




Возможно, дело в том, что надо использовать функцию
перед
Это для того, чтобы преобразовать полноцветное изображение в изображение с палитрой.
Я увидел это вот тут: http://www[dot]softtime[dot]ru/forum/rea[dot][dot][dot]12256&page=0
 
 Top
NN
Отправлено: 10 Ноября, 2014 - 14:15:37
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Спасибо за ответ, я все посмотрела, вставила функцию imagetruecolortopalette($image, true, 256) и попробовала, но ничего не изменилось - белый цвет остается непрозрачным...
Вот уже измененный код PHP:
$image = imagecreatefrompng('images/Overlays/T72_0010.0.png');
if($_GET['red'] > 200 && $_GET['green'] > 200 && $_GET['blue'] > 200)
{
$_GET['red'] = 255; $_GET['green'] = 255; $_GET['blue'] = 255;
}
$color = imagecolorallocate($image,$_GET['red'],$_GET['green'],$_GET['blue']);
imagetruecolortopalette($image, true, 256);
imagecolortransparent($image,$color);
imagepng($image,'images/proba.png'); // Выводим изображение в файл
imagedestroy($image);

Причем пробовала эту функцию ставить и до, и после функции imagecolortransparent($image,$color);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB