|
|
|
| Вобщем надо считать изображение из файла (для дальнейшего наложения его функцией imagecopyresampled на другое), но при этом либо сохранить его прозрачный фон, либо задать фоновый цвет прозрачным... ДЕлать это пытаюсь так:
$logo=imagecreatefrompng('../images/index_small_logo.png');
imagecolortransparent($logo,"1");
|
На локальном компьютеоре работает нормально... При выкладывании на сервер - прозрачность не устанавливается... Дома php 4.4.0, на сервере - 4.1.2. Сразу говорю, что поддержги gif на сервере нет, из-за этого вобщем-то и возникла проблема) | |
|
|
|
|
|
|
|
для: JohnFord
(29.07.2005 в 19:58)
| | А почему вы пишите
imagecolortransparent($logo,"1");
|
Ведь вместо "1" должен стоять индекс цвета.
Также проблемы с установкой прозрачности возникают для многоцветных изображений. Вы узнаете цвет пикселя в точке, например (1,1), а уже в точке (1,2) цвет пикселя другой - хотя на глаз один и тот же.
Чтобы избавится от этого нужно преобразовать палитру к меньшему кол-ву цветов.
imagetruecolortopalette($img, true, 16);
|
Последний параметр определяет кол-во цветов, к которому вы хотите преобразовать цветовую палитру. Но преобразовывая цветовую палитру, тем более уменьшением кол-ва цветов можно запросто испортить все изображение.
Хотя при работе с форматом PNG эти проблемы не так актуальны, как, например, с JPEG.
Я устанавливаю прозрачность так:
<?
$jpeg_file = "test2.jpg";
// Создаем изображение из JPEG-файла
$img = imagecreatefromjpeg($jpeg_file);
imagetruecolortopalette($img, true, 32);
// Получаем индекс цвета пикселя в цветовой палитре,
// который находится на изображении image в точке с координатами 180, 180.
$index = imagecolorat($img, 180, 180);
// Получаем цвет, содержащийся в индексе $index цветовой палитры
// изображения. Цвет возвращается в виде ассоциативного массива,
// с ключами red, green, blue.
$rgb = imagecolorsforindex($img, $index);
// Получаем идентификато цвета
$color = imagecolorallocate ($img, $rgb["red"], $rgb["greeen"], $rgb["blue"]);
imagecolortransparent($img, $color);
// Выводим изображение в браузер
header("Content-type: " .image_type_to_mime_type(IMAGETYPE_JPEG));
imagejpeg($img);
?>
|
| |
|
|
|
|
|
|
|
для: glsv (Дизайнер)
(30.07.2005 в 08:53)
| | Пасибки, сейчас проверю....
ЗЫ но мой вариант работал на локальном сервере.... и, та указанная "1" - это индекс цвета в индексированном png-файле.... ф одном-единственном, хранящемся на червере, который я накладываю на все закачиваемые.. | |
|
|
|