PDA

Просмотр полной версии : Текст в картинку


dimash
21.08.2008, 13:16
Суть скрипта такая что на лету должен почтовій ящик из $text делатся в картинку. <?php if(!empty($data[3]))
{
if(preg_match("/^[\da-z\._-]+@[\da-z\._-]+\.[a-z]{2,6}$/i", $data[3]))
{
$padding = 5;
$font = 4;
$text = $data[3];
$height = imagefontheight($font) + ($padding * 2);
$width = imagefontwidth($font) * strlen($text) + ($padding * 2);
$image_handle = imagecreatetruecolor($width, $height);
$text_color = imagecolorallocate($image_handle, 139, 139, 139);
$background_color = imagecolorallocate($image_handle, 244, 244, 244);
$bg_height = imagesy($image_handle);
$bg_width = imagesx($image_handle);
imagefilledrectangle($image_handle, 0, 0, $bg_width, $bg_height, $background_color);
imagestring($image_handle, $font, $padding, $padding, $text, $text_color);
imagejpeg($image_handle,NULL,100);
imagedestroy($image_handle);
}
} ?>
Но выводит такое. яШяаJFIFяю'рлjљЁУґWЗZ‡ДПлћЦ м/ьSe.Ј/Д/ЂЮєЅС~|Pш г; |QшБбЏш’Ц_ьEЅФ/Хј{kЉ5M29-uџ?PDъ]‡‹љЪнu+ЏiћУЈjµНoЗџ |Oг;-;Дљ/†>xОГв/Г Щxb{};ЖzяЋґ±ўEб_?—Яґ–Ѕі“бщј п./`Ф4пќ–‡:zЮўоФWЕї хїь2эђ~ ©я Ч?5ќцjТфM;Зriz>ЏҐШьFХѕшј/k©x/Вц¶Z.•eЇ^>‘кЪgЊјEcu*ЯjтxІ+dТ¦цќSZшџаЇxЈR ‡?~j¶ЯШ‰бЯiЮс®Ѓb—ZЮ©‹>™uржЯ^сч?4|gр}Џ?¦шikЁш‡Е3ЮшfяЕ 2Iа?шЗ^Ф|q‡н†•вOj>,]+ВаoС^рsв‹ьaЁшіHс5ќнх¶…eбќK Mсњџю(|УµiхщьKkЁшbЧВ_ох}[~Уµ]CДzv·>ќyЊtЭ0йZmОЏ5ЮЇЪ|PсfЈаПќWG†К][Qс?Ђ<ҐЛ©G=Жќ§j?|}бџ‡ц:ЮЎckscsЄЩh>&‹[єС-х=}r >M"sC’хuk Bўј'Д%шакWћ&ѕш{в][?Г_ шW_Рј9вO iЦ:ЏДЇhМЮ рNЎвЯ\к6^№Чфп‰4п?Zdю3‚[Я › I¦AвgПuї‰?фшачцпГ џ лєЧ„'я„люПЉбрнЇ‡|WаЏЪД?Щ_ рЃВЪ—SџZ°ФюнюЯя…ѓ ЌХЏЉюПяЭµЖ…цЭ`лЉ+зПЃЯьfР ±mЇ¬я±ь;с‡ю_мПкЯnФµOннkВр ПцяЩяВ;cвнxѕПаЏ f?ц— ьMсfЈаї йєЖ— •ЕНзД/„ћ–=B9еЃtпьVр_Ѓu‰Ј[{›Yн¶“в;лЌ6F• ‡QЉЦk«kЛdљТpBўј'Ж?µЅДїфi|1§[xWбпВ/hЪ¦·gЇЯёЦю$шгвw„o"}«xКць!ўВряГ¶Ъ^їгџЭЇѓm5э>зДzv§ўТш3с'З~+сЌј!гнм—ѕС|в _я„FO‡ ‘xcЗWЮ7У4Йїбѕш…с+Д“/Ђп/sвЭ_Г,я‰·ц>ЅрлВ·єЬл AСEМxЗБ~шѓ \xWЖљ%—?ь7y{ўЯЯhљ’јєuьюЦфпiqк Кйх”z¶•c=Ц›v&Уµ8"“OХ-o4л›«I№{±СхЭґэkU‡ДЩџЪєЇ‰ iгoш±ї°nџQрЯШ№ЇЭ[й±\лєјЧґ¬~x*ЛGЧtЖєЦ™вмЗЅЏ ї~'шЦкКлEє}CGФь7©xїЖЮ§б kJФМ:¶ќ®шNуEЦ,µЌ?HХнЇЈФф]"кЛУи #Тюь/СЯTћЧГч·ънпЂ5-{XХьUвэ_Чх…ѕ)џЖ^їЧјC®лЪ–№Ю шk\ќEќЦ©Ё]П>‰e¤шVъKЇ ¶с«вИ,цxѓZСtкz‡Ъ.›н:?…пјK©h VeyЪК°ЮшїДS}ўЮЪ+«џн.т{?,c¶ЪўЂ<ГNш5рЫJ±єУl|7еY\л^Ч5Ќzзм|>с§‹< ўи’]j“Kбяx3ДiЁx_бц…&ќаMн:Ґ®™бЛk-gW¶Ѕн|EбЭЕz=жѓЇYэ·LЅы;Й\]Y][]Y]AЁiєћ™©iуЪкz>µЈкv¶z¶…®й7–ZЖ…¬YXкъEх–§eku дzoАї…ъ\'ЉЯГчіЬшОЛГ–^(Цх_ xї\сNґюФu][В‹хzяЕ?р“шJяWљo шѕ-b? 4п ЫиъЕ•·„|-Њiїюйpxћ+ЮПsг;/YxЈ[Х|UвэsЕ:Уш?QХuojч~/ЦµляяВOб+э^iј/вшµ?ьSбдУј7oЈлVЮрґ:7®Q@З„ь#Ґ x/N›KСоьOymq{%ь’шіЖю4µ»G±гќДzµ µђЋЦ&ЏM·ѕ‹N†v№є†Х.o.жџ—рпБЇ†Ю mgрЏГююОрќц‡УtTЦ5йоґЛ©хйьS §¦x†лTџДєvµ§x–sЇиZн–±±бнb GBѕУ®фл >Љу ѓѕ±СхЭґэkU ДЩџЪєЇ‰јiгoш±ї°nџQрЯШшAѕТ хk]?ZФuZЏ_УµяxУЖЮ4с7РxwЕґ‚OшГДZ жµuўйъ/Ќьa—б»»щь;ҐЯx›[Цґн*ЧZФnµ =>Љвь'ы/ь"ъ?ц_Шјаї‡–їс0Х/|Ї|=юЭя„?Gя‰ЌнЮямЏшIuїш�IїTФ>ЫяKЫЯіZ}џГїѕxSбµџВ?шoы;АwЪM СSXЧ§єУ.§Ч§сLzћ™вR¶ZДЗ‡µ?,u  ыN»У¬%¶фъ(ИфЯЃ фё
Значит, картинка текстом.
$text = $data[3]; добывается с файла. Такой спсоб добытия.<?php
if (file_exists("db.csv")) {
$fd = fopen ("db.csv", "r");
<?php while ($data = fgetcsv ($fd, 10000, ";"))
{ ?>
<?= $data[2] ?>
<?php if(!empty($data[3])) Заголовки если припасть в скрипте вывода картинки тогда выводит типа заголовки уже отправлена. Есть ли (settype)image?

Chaak
21.08.2008, 13:21
header('Content-type'.image_type_to_mime_type(IMAGETYPE_PNG));

dimash
21.08.2008, 13:47
То есть вначале.
<?php header('Content-type'.image_type_to_mime_type(IMAGETYPE_PNG));
Вместо image_type_to_mime_type - data[3];? Работает такое вообще или нет не знаю, но по-любому это заголовок, а нету никакой переменной еще "до" скрипта. То есть даже если бы и работал - то Заголовки если припасть в скрипте вывода картинки тогда выводит типа заголовки уже отправлена..

Isis
21.08.2008, 13:55
<?php
header('Content-type: image/jpeg');
//....
?>

blaga
21.08.2008, 14:07
и никаких выводов в браузер кроме самой картинки в скрипте быть не должно.

dimash
21.08.2008, 14:42
Так у меня каринка генерурутеся прост на лету с элемента массива. Прост такая функция, думаю, не используется которая явно указывает формат переменной. Есть ли тип-картинки?

Sn@k3
21.08.2008, 15:00
<?
header ("Content-type: image/PNG");
$anticapcha=rand(10000,99999);
$anticapcha33=$anticapcha;
$antiss=rand(1,4);
$antis1=substr($anticapcha33,0,$antiss);
$antis1.=' ';
$antis2=strlen($antis1); $antis2--;
$antis3=substr($anticapcha33,$antis2,5);
$anticapcha44=$antis1; $anticapcha44.=$antis3;
$immm1=rand(1,240);
$immm2=rand(1,220);
$immm3=rand(1,240);
$immm4='#'; $immm4.=$immm1; $immm4.=$immm2; $immm4.=$immm3;
$im = @imagecreate (70, 70)
or die ("Cannot Initialize new GD image stream");
$background_color = imagecolorallocate ($im, $immm1, $immm2, $immm3);
//$imaggg=imageline ($im, 12, 12, 221, 221, $text_color1);
$text_color = imagecolorallocate ($im, rand(222,255), rand(222,255), rand(222,255));
$text_color1 = imagecolorallocate ($im, 0, 0, 0);
$text_color2 = imagecolorallocate ($im, 110, 32, 56);
$dddaa=rand(1,53);
$dddaa1=$dddaa+15;
$dddaa21=rand(1,18); $dddaa2=$dddaa21+53;
$dddaa3=rand(-3,45); $dddaa33=$dddaa3+15;
//imagesetthickness($im,11);
$ffs=rand(1,2);
imagestring ($im, 12, 1, 56,'Logotext', $text_color1);
if($ffs == '1') {
imageline ($im, $dddaa1, 2, $dddaa1, 56, $text_color);
imagestringup($im,5,$dddaa,55,$anticapcha44,$text_ color); } else {
imageline ($im, $dddaa21, $dddaa33, $dddaa2, $dddaa33, $text_color);
imagestring ($im, 12, $dddaa21, $dddaa3,$anticapcha44, $text_color); }
imagepng ($im,'pp.png');
$ip=getenv("REMOTE_ADDR");
$ff1='users\check\anticapcha\ '; $ff1.=$ip; $ff1.='.txt';
$fffas=fopen($ff1,'w');
fwrite($fffas,$anticapcha);
fclose($fffas);
?>



вот мой когда-то писанный кусок кода, как всегда сам черт голову сломит, но работает =)
выводиться pp.png

.:EnoT:.
21.08.2008, 15:01
Посмотри в примеру это http://forum.antichat.ru/threadedpost826423.html#post821969
Есть ли тип-картинки?
Ты же сам делаешь картинку, поэтому сам указывай тип, я например gif всегда указываю

dimash
21.08.2008, 16:00
В скрипты свыше типа всего лишь картинка выводится и все, без другого гипертекста.
Имелось ввиду указать явно типа перменной картинки ($KARTINKA)$text.
В ссылке отсылается заголовок.

.:EnoT:.
21.08.2008, 16:05
В скрипты свыше типа всего лишь картинка выводится и все, без другого гипертекста.
Имелось ввиду указать явно типа перменной картинки ($KARTINKA)$text.
В ссылке отсылается заголовок.
я ещё больше не понял чего ты хочешь...у тебя не выводилась картинка? поставь хидер...теперь что-то неправильно выводится...
Изъясняй яснее, а то мне ясно что ничего не ясно =\

Joker-jar
21.08.2008, 16:24
О, и тут эта тема. Я вроде понял, что тебе нужно. Картинка может быть либо в виде отдельного файла на сервере, либо в виде отдельного скрипта, отправляюшего клиенту только картинку и ничего более. Поэтому, чтобы заменить в странице текстовый e-mail на его изображение, нужно примерно следующее:
<img src="/mail2gif.php?mail=vasya@microsoft.com">
что тоже не особо хорошо, т.к. текстовый вариант мыла все же светится. Можно сделать так:
<img src="/mail2gif.php?mailid=1">
а в самом скрипте уже выдирать мыло по id откуда-то

dimash
21.08.2008, 17:39
я ещё больше не понял чего ты хочешь...у тебя не выводилась картинка? поставь хидер...теперь что-то неправильно выводится...
Изъясняй яснее, а то мне ясно что ничего не ясно =\
Какртинка вывидтся конечно. Но выводится текстом. Перед картинкой есть вывод, то есть заголовки отосланы и больше не отсылаются, а надо картинку вывести правильную.

dimash
21.08.2008, 17:42
О, и тут эта тема. Я вроде понял, что тебе нужно. Картинка может быть либо в виде отдельного файла на сервере, либо в виде отдельного скрипта, отправляюшего клиенту только картинку и ничего более. Поэтому, чтобы заменить в странице текстовый e-mail на его изображение, нужно примерно следующее:
<img src="/mail2gif.php?mail=vasya@microsoft.com">
что тоже не особо хорошо, т.к. текстовый вариант мыла все же светится. Можно сделать так:
<img src="/mail2gif.php?mailid=1">
а в самом скрипте уже выдирать мыло по id откуда-то
Вот, а хотел скриптом сразу сделать, то есть price.php. Чтобы без mail2gif.php. А можна не $_GEY делать а $_POST, как-то таки лучше?

dimash
21.08.2008, 22:53
О, и тут эта тема. Я вроде понял, что тебе нужно. Картинка может быть либо в виде отдельного файла на сервере, либо в виде отдельного скрипта, отправляюшего клиенту только картинку и ничего более. Поэтому, чтобы заменить в странице текстовый e-mail на его изображение, нужно примерно следующее:
<img src="/mail2gif.php?mail=vasya@microsoft.com">
что тоже не особо хорошо, т.к. текстовый вариант мыла все же светится. Можно сделать так:
<img src="/mail2gif.php?mailid=1">
а в самом скрипте уже выдирать мыло по id откуда-то
А вот как по id вывести? у меня csv файл, смотри первый пост.

dimash
21.08.2008, 22:56
наверное лучше вываести по имеевшиеся data[1] чтобы выглядела как <img src="/mail2gif.php?podavec=ya"> только как? У меня есть массив из 4 элементов, последний почта, выводим по первому элементу, как сделать?