КИТА unofficial

Компьютерный => Веб-программирование => Тема начата: naxellar от Август 18, 2007, 10:34:51



Название: Работа с модулем PHP GD
Отправлено: naxellar от Август 18, 2007, 10:34:51
Скрипт делает из обложек альбомов такую вот композицию:
(http://naxellar.jino-net.ru/alb/2.php)
Так делаю прозрачный фон:
Код: (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.

На крайний случай буду добавлять в палитру цвет, не использующийся в изображении, и делать его прозрачным, но надеюсь, что есть способ легче.


Название: Re: Работа с модулем PHP GD
Отправлено: naxellar от Август 18, 2007, 11:02:36
(http://naxellar.jino-net.ru/alb/3.php)
Вроде бы решена проблема:
Код в прошлом посте в топку
Код: (php)
imagesavealpha($image,true);
imagefill($image,1,1,imagecolorallocatealpha($image,255,255,255,127));


Название: Re: Работа с модулем PHP GD
Отправлено: Tuomas от Январь 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


Название: Re: Работа с модулем PHP GD
Отправлено: Alder от Январь 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) );


Название: Re: Работа с модулем PHP GD
Отправлено: Alder от Январь 03, 2008, 12:01:14
Tuomas, php использует. Он по другому не понимает русский для изображений.

Там в моем коде строчка одна криво отобразилась. Вот правильный вариант:
Код: (php)
$uni .= ($code>175)? "&#" . (1040+($code-176)) . ";" : $char;


Название: Re: Работа с модулем PHP GD
Отправлено: Tuomas от Январь 03, 2008, 12:13:08
Вотвот. Строчка неправильно отобразилась...

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

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

Всем спасибо. Эта проблема решена :)