|
|
|
| Доброго времени суток. Столкнулся с проблемой, как по средствам пхп сделать обводку шрифта (на картинке) скажем красного цвета ? http://allnfs.ru/test/index.php?l=line_typeanim5_s.gif&b=d_typeanim11.gif&t=&d=1&m=1&y=2008
Заранее спасибо | |
|
|
|
|
|
|
|
для: Vitaleks
(16.09.2008 в 23:54)
| | Обводка, это надо понимать обвести шрифт по контуру, а рамка, это рамка вокруг бокса текста. Если рамка, то так (выводит рамку вокруг текста на удалении 1рх от него):
<?
$im = imagecreate (120, 60);
$font = "arial.ttf";
$text = "Testing";
$black = imagecolorallocate ($im, 0, 0, 0);
$white = imagecolorallocate ($im, 255, 255, 255);
$red = imagecolorallocate ($im, 255, 0, 0);
$box = imagettftext ($im, 20, 0, 16, 34, $white, $font, $text);
$xb1 = $box[6] - 2;
$xb2 = $box[2] + 1;
$yb1 = $box[1] + 1;
$yb2 = $box[7] - 2;
imagerectangle ($im, $xb1, $yb1, $xb2, $yb2, $red);
header ("Content-type: image/gif");
imagegif ($im);
imagedestroy ($im);
?>
|
| |
|
|
|
|
|
|
|
для: sim5
(17.09.2008 в 10:32)
| | Пордон, не дописал , нужна обводка и рамка. Спасибо
решил не мастерить лесопед, сделал следующие
imagefttext($img,6,0,9,$img_h+9,$red,$font,$text);
imagefttext($img,6,0,11,$img_h+11,$red,$font,$text);
imagefttext($img,6,0,11,$img_h+9,$red,$font,$text);
imagefttext($img,6,0,9,$img_h+11,$red,$font,$text);
imagefttext($img,6,0,10,$img_h+11,$red,$font,$text);
imagefttext($img,6,0,10,$img_h+9,$red,$font,$text);
imagefttext($img,6,0,9,$img_h+10,$red,$font,$text);
imagefttext($img,6,0,11,$img_h+10,$red,$font,$text);
imagefttext($img,6,0,10,$img_h+10,$black,$font,$text);
|
Вопрос: будет ли нагрузка на сервер при большой аудитории (запрос на этот файл - картинку)? если да - какое есть еще решение? | |
|
|
|
|
|
|
|
для: Vitaleks
(17.09.2008 в 12:19)
| | И что это будет? Любое лишнее, это лишнее :) | |
|
|
|
|
|
|
|
для: sim5
(17.09.2008 в 21:36)
| | получается обводка текста | |
|
|
|
|
 24.6 Кб |
|
|
для: Vitaleks
(16.09.2008 в 23:54)
| | возникла еще одна проблема, перешел на более качественные ПНГ изображения, всего их 5
1 - основной фон, 2,30 кб пнг +альфа
2 - декоративная картинка весом 50 кб (можно 1 и 2 изоб. совместить)
3 - линейки, 1,19 кб пнг +альфа
4 - стрелка, 1,19 кб пнг +альфа
4,1 (пока идея) декоративная картинка весом 10-20 кб
5 - текст (двух цветный)
6 - второстепенный фон (блик), 1,40 кб пнг +альфа
в итоге http://allnfs.ru/test/img.php?l=line_typeanim4_s.gif&b=d_typeanim10.gif&d=1199134800&t=7+Dv4uDv4g==.png
а должно - в файле userline.gif | |
|
|
|
|
|
|
|
для: Vitaleks
(17.09.2008 в 19:46)
| | ??? Не понял, вы о чем?
PS. Кстати, может быть лучше сделать надпись на фоне с некоторой прозрачностью? | |
|
|
|
|
|
|
|
для: sim5
(17.09.2008 в 21:36)
| | ладно, проехали с этим... увы увы увы, красочные картинке в пнг формате обрабатывается коряво...
м... все же, как реализовать следующие - наложение ПНГ картинки (пример - http://allnfs.ru/test/images/begunok.png) на картинку?
P.S. функцией imagecopymerge($im,$begunok,0,0,0,0,700,90,100); накладывается, но альфа поддержки нет | |
|
|
|
|
|
|
|
для: Vitaleks
(17.09.2008 в 22:36)
| | Вы что хотите, тап наложить логотип (текст например) с прозрачной областью на изображение? | |
|
|
|
|
|
|
|
для: sim5
(17.09.2008 в 22:37)
| | http://allnfs.ru/test/index2.php вот смотрите что получается | |
|
|
|
|
|
|
|
для: Vitaleks
(17.09.2008 в 23:04)
| | Ну нормально, правда не сразу разобрать, что справа бампер (?). Получается, значит хорошо, а в чем вопрос тогда? | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 05:17)
| | в том что юзаю пнг картинку - которая почемуто неотображается, и шрифт который должен быть черно-белым становится серым...
...
наладил стрелочку http://allnfs.ru/test/index2.php
Стрелка почемуто удаляет из под себя фон, а нужно наложение - как быть? | |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 12:19)
| | Если вы про отображение png в IE, то с этой проблемой к Биллу, я в Опера вижу вашу картинку. Что касается чего-то непонятного (по вашему стрелочка), то заготовтье эту картинку, например, в Шопике, с уже прозрачным фоном, а потом наложите ее просто на нужное вам изображение. То что прозрачно, будет прозрачным, результат выводите и все на этом. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 12:49)
| | нет, проблема именно при обработке (сборке) на сервере...
IE 7 поддерживает прозрачность пнг | |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 14:41)
| | Какие проблемы? Если с наложением этой стрелки (как вы ее называете), то приготовьте ее в Фотошоп и накладывайте. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 15:07)
| | идея заключается в том, что этот скрипт высчитвает время прибывания на сайте (от регистрации до сего момента), а стрелочка - бегунок показывает это на линейки... С гиф изображениями все окей, а вот с пнг глюки
для сраванения
http://allnfs.ru/test/index2.php?d=1199134800 - стрелка в ПНГ формате
http://allnfs.ru/test/index1.php?d=1199134800 - стерлка в ГИФ формате (утрачена подсветка) | |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 15:42)
| | Как вы накладываете эту стрелку (код)? Прикрепите png изображение вашей стрелки. Вы убрали на нем фон? | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 15:46)
| | как его скрыть? ладно... содержимое с index2.php
<?php
header("Content-type: image/png");
$beg=imagecreatefrompng('images/begunok.png');
$rightimage=imagecreatefromgif('images/right/1.gif');
$usertext="Текст юзера";
$beg_sx=imagesx($beg);
$beg_sy=imagesy($beg);
$out=imagecreate(700,90);
imagecopy($out,$rightimage,0,0,0,0,700,90);
$pixpm=353/12;
$std=$_GET['d'];
$ed=time();
$sid=3600*24;
$sim=3600*30*24;
$sty=mktime(0,0,0,0,0,date('Y',$std));
$offset=$ed-$std;
$days=intval($offset/86400);
$monsz=0;
while($days>30)
{
$monsz++;
$days=$days-30;
}
$beg_x=$monsz*$pixpm;
imagecopy($out,$beg,$beg_x,5,0,0,$beg_sx,$beg_sy);
$black = imageColorAllocate($out, 0, 0, 0);
$white = imageColorAllocate($out, 255, 255, 255);
$font = "micron.ttf";
$text = $usertext.' дней Copyright (c) AllNFS.Ru';
imagefttext($out,6,0,9,50,$black,$font,$text);
imagefttext($out,6,0,11,52,$black,$font,$text);
imagefttext($out,6,0,11,50,$black,$font,$text);
imagefttext($out,6,0,9,52,$black,$font,$text);
imagefttext($out,6,0,10,52,$black,$font,$text);
imagefttext($out,6,0,10,50,$black,$font,$text);
imagefttext($out,6,0,9,51,$black,$font,$text);
imagefttext($out,6,0,11,51,$black,$font,$text);
imagefttext($out,6,0,10,50,-$white,$font,$text);
imagepng($out);
imagedestroy($out);
?>
|
| |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 15:55)
| | Значит так. Открываете Фотошоп. Создаете новое изображение нужного вам размера. Рисуете на нем как новый объект бегунок, или чего хотите. Затем можете удалить фон (либо просто выключить его) и "Сохранить для веб..." Выбираете формат PNG, указываете "Прозрачность", и сохраняете. Выключенный (или удаленный) фон, это и будет прозрачный участок в вашем png-файле. Теперь при наложении этого изображения функцией imagecopy() вы получите то, что хотите. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 16:12)
| | делал именно как вы описали, сохраняю в ПНГ 24 с поддержкой прозрачности, в точности и % (альфа прозрачность). ПНГ 8 поддерживает лишь полную прозрачность , как и гиф... | |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 16:21)
| | Прикрепите сюда свою png (а лучше исходник psd) картинку этой стрелки или чего там. | |
|
|
|
|
 28.7 Кб |
|
|
для: sim5
(18.09.2008 в 16:49)
| | Держите. Не могу жертвовать дизайном, может тогда с гиф картинок и фун imagecopymerge(); собрать нужную мне стрелку, при этом каждый слой делать менее прозрачным? при 12000 просмотров (запросов) в день сервер не уйдет в даун? | |
|
|
|
|
 30 Кб |
|
|
для: Vitaleks
(18.09.2008 в 18:01)
| | Я взял вашу картинку как фон, и он обязательно должен быть в формате JPG, PNG, а никак не GIF (это индексированное изображение).
<?
$beg = imagecreatefrompng('arrow.png');
//то на что накладываем, это JPG
$rightimage=imagecreatefromjpeg('fon.jpg');
imagecopy($rightimage, $beg, 240, 8, 0, 0, 19, 52);
header ("Content-type: image/gif");
imagegif ($rightimage); //а вот сохранить можно и в GIF
|
А результат (он прикреплен) хоть в GIF сохраняйте. А что на что вы там еще ложите, для меня это лес темный ;-) | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 18:58)
| | а, ясно где допустил ошибку, спасибо | |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 19:05)
| | еще вопрос - реально ли увеличить лимит цветов ? 256 мало | |
|
|
|
|
|
|
|
для: Vitaleks
(18.09.2008 в 19:25)
| | В чем, в GIF? Нет, нельзя, это максимум для этого формата. Выводите в JPG формате. | |
|
|
|
|
|
|
|
для: sim5
(18.09.2008 в 19:38)
| | все, разобрался, чтото показалось что он способен работать только с 256 не зависимо от формата | |
|
|
|
|