КИТА unofficial
Ноябрь 22, 2024, 09:30:58 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   ПРАВИЛА Помощь WIKI PDA Войти Регистрация  


Страниц: [1]   Вниз
  Печать  
Автор Тема: Работа с модулем PHP GD  (Прочитано 13232 раз)
0 Пользователей и 1 Гость смотрят эту тему.
naxellar
Главный флудер
Проректор
*****

Карма: +101/-52
Offline Offline

Пол: Мужской
Сообщений: 5015

Главный флудер


« : Август 18, 2007, 10:34:51 »

Скрипт делает из обложек альбомов такую вот композицию:

Так делаю прозрачный фон:
Код: (php)
$image_color=imagecolorallocate($image,255,255,255);
imagecolortransparent($image,$image_color);
imagefilledrectangle($image,0,0,imagesx($max_angle_handle),imagesy($max_angle_handle),$image_color);
Да вот беда в том, что белый цвет становится прозрачным. Нельзя ли делать, не затрагивая никакой другой цвет в палитре, прозрачный фон? Изображение в PNG.

На крайний случай буду добавлять в палитру цвет, не использующийся в изображении, и делать его прозрачным, но надеюсь, что есть способ легче.
« Последнее редактирование: Январь 02, 2008, 08:40:28 от Alder » Записан
naxellar
Главный флудер
Проректор
*****

Карма: +101/-52
Offline Offline

Пол: Мужской
Сообщений: 5015

Главный флудер


« Ответ #1 : Август 18, 2007, 11:02:36 »


Вроде бы решена проблема:
Код в прошлом посте в топку
Код: (php)
imagesavealpha($image,true);
imagefill($image,1,1,imagecolorallocatealpha($image,255,255,255,127));
« Последнее редактирование: Январь 02, 2008, 08:42:36 от Alder » Записан
Tuomas
Магистр
***

Карма: +8/-0
Offline Offline

Пол: Мужской
Награды:
3 место в фотоконкурсе \
Сообщений: 290


Радиофинн


« Ответ #2 : Январь 02, 2008, 06:48:23 »

Столкнулся с GD2.

Обработчик ну никак не хочет выводить русский текст на картинку Грустный

Пишу примерно так:
Код: (php)
$str=convert_cyr_string("Some text","k","w");
ImageTTFtext($im,10,0, 70,20, $grey, getcwd()."/arial.ttf", $str);

PS. без ф-ции convert_cyr_string ситуация аналогична.

Для чего правила? Используем для кода тэг GeSHi
« Последнее редактирование: Январь 03, 2008, 01:38:12 от Романыч » Записан

-Жизнь всегда такая жестокая? Или только когда маленький?
-Она всегда жестокая... Платок можешь оставить себе.
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #3 : Январь 02, 2008, 07:55:39 »

Tuomas, может у тебя convert_cyr_string неправильная?

У меня работает вывод с вот такой функцией конвертации:
Код: (php)
 function toUnicodeEntities($text, $from="w")
  {
   $text = convert_cyr_string($text, $from, "i");
   $uni = "";
   for ($i=0, $len=strlen($text); $i<$len; $i++)
  {
   $char = $text{$i};
   $code = ord($char);
   $uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" : $char;
   }
   return $uni;
  }

Печатаем таким образом:
Код: (php)
$currentImage = ImageCreateFromJPEG('back.jpg');
$blackColor = ImageColorAllocate($currentImage, 255, 255, 255);
$before = 'Русский текст';
ImageTTFText($currentImage, 10, 0, 75, 24, $blackColor, 'verdana',toUnicodeEntities($before) );
« Последнее редактирование: Январь 02, 2008, 08:43:03 от Alder » Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Alder
Администратор
Проректор
*****

Карма: +331/-16
Offline Offline

Пол: Мужской
Награды:
За II место в конкурсе поэзии (весна-2007)2 место в фотоконкурсе \За II место в фотоконкурсе \3 место в фотоконкурсе \2 место в фотоконкурсе \Лучший знаток музыки 2009Лучший знаток музыки 2010
Сообщений: 11224


just for fun


WWW
« Ответ #4 : Январь 03, 2008, 12:01:14 »

Tuomas, php использует. Он по другому не понимает русский для изображений.

Там в моем коде строчка одна криво отобразилась. Вот правильный вариант:
Код: (php)
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" : $char;
« Последнее редактирование: Январь 03, 2008, 01:39:44 от Романыч » Записан

"There are things known and there are things unknown, and in between are the doors..." (Jim Morrison)
Tuomas
Магистр
***

Карма: +8/-0
Offline Offline

Пол: Мужской
Награды:
3 место в фотоконкурсе \
Сообщений: 290


Радиофинн


« Ответ #5 : Январь 03, 2008, 12:13:08 »

Вотвот. Строчка неправильно отобразилась...

С правильной строчкой все пашет.
Кроме того, пашет и вот так:

Код: (php)
$str = iconv("windows-1251", "UTF-8", $str);

Всем спасибо. Эта проблема решена Улыбка
« Последнее редактирование: Январь 03, 2008, 01:42:09 от Романыч » Записан

-Жизнь всегда такая жестокая? Или только когда маленький?
-Она всегда жестокая... Платок можешь оставить себе.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Penguins Counter Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS! Internetmap
Страница сгенерирована за 0.162 секунд. Запросов: 30.