Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблемка с imagecolortransparent()

Сообщения:  [1-3] 

 
 автор: JohnFord   (30.07.2005 в 22:20)   письмо автору
 
   для: glsv (Дизайнер)   (30.07.2005 в 08:53)
 

Пасибки, сейчас проверю....
ЗЫ но мой вариант работал на локальном сервере.... и, та указанная "1" - это индекс цвета в индексированном png-файле.... ф одном-единственном, хранящемся на червере, который я накладываю на все закачиваемые..

   
 
 автор: glsv (Дизайнер)   (30.07.2005 в 08:53)   письмо автору
 
   для: 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($imgtrue32);  
  
// Получаем индекс цвета пикселя в цветовой палитре, 
  // который находится на изображении image в точке с координатами 180, 180. 
  
$index imagecolorat($img180180);
  
// Получаем цвет, содержащийся в индексе $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);
?>

   
 
 автор: JohnFord   (29.07.2005 в 19:58)   письмо автору
 
 

Вобщем надо считать изображение из файла (для дальнейшего наложения его функцией imagecopyresampled на другое), но при этом либо сохранить его прозрачный фон, либо задать фоновый цвет прозрачным... ДЕлать это пытаюсь так:

$logo=imagecreatefrompng('../images/index_small_logo.png');
imagecolortransparent($logo,"1");


На локальном компьютеоре работает нормально... При выкладывании на сервер - прозрачность не устанавливается... Дома php 4.4.0, на сервере - 4.1.2. Сразу говорю, что поддержги gif на сервере нет, из-за этого вобщем-то и возникла проблема)

   

Сообщения:  [1-3] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования