Ôîðóì: Ôîðóì PHPÔîðóì ApacheÔîðóì Ðåãóëÿðíûå ÂûðàæåíèÿÔîðóì MySQLHTML+CSS+JavaScriptÔîðóì FlashÐàçíîå
Íîâûå òåìû: 0000000
PHP 5/6.  ïîäëèííèêå. Àâòîðû: Êóçíåöîâ Ì.Â., Ñèìäÿíîâ È.Â. PHP 5. Íà ïðèìåðàõ. Àâòîðû: Êóçíåöîâ Ì.Â., Ñèìäÿíîâ È.Â., Ãîëûøåâ Ñ.Â. Ñàìîó÷èòåëü PHP 5 / 6 (3 èçäàíèå). Àâòîðû: Êóçíåöîâ Ì.Â., Ñèìäÿíîâ È.Â. MySQL íà ïðèìåðàõ. Àâòîðû: Êóçíåöîâ Ì.Â., Ñèìäÿíîâ È.Â. C++. Ìàñòåð-êëàññ â çàäà÷àõ è ïðèìåðàõ. Àâòîðû: Êóçíåöîâ Ì.Â., Ñèìäÿíîâ È.Â.
ÂÑÅ ÍÀØÈ ÊÍÈÃÈ
Êîíñóëüòàöèîííûé öåíòð SoftTime

Ôîðóì PHP

Âûáðàòü äðóãîé ôîðóì

 

Çäðàâñòâóéòå, Ïîñåòèòåëü!

âèä ôîðóìà:
Ëèíåéíûé ôîðóì Ñòðóêòóðíûé ôîðóì

òåìà: ãåíåðàöèÿ êàðòèíêè äëÿðåãèñòðàöèè
 
 àâòîð: FaStY   (12.03.2006 â 02:04)   ïèñüìî àâòîðó
 
 

âîò êàêàÿ áåäà: âçÿë ñêðèïò, êîòîðûé ãåíåðèðóåò êàðòèíêó äëÿ ðåãèñòàöèè, íî âîò ïðîáëåìêà, ÷òî ÿ íå ìãó âñòàâèòü åãî â ðåãèñòðàöèþ :(
âîò ñêðèïò:

<?php 

$img_x          
= 80;   //Øèðèíà èçîáðàæåíèÿ, ïî óìîë÷àíèþ-100 
$img_y          = 26;   //Âûñîòà èçîáðàæåíèÿ, ïî óìîë÷àíèþ-30 
$num_n          = 5;    //×èñëî öèôð, default-4 
$font_min_size  = 12;   //Ìèíèìàëüíûé ðàçìåð øðèôòà, ïî óìîë÷àíèþ-12 
$lines_n_max    = 1;    //Ìàêñèìàëüíîå ÷èñëî øóìîâûõ ëèíèé, ïî óìîë÷àíèþ-2 
$nois_percent   = 4;    //Çàøóìëåííîñòü öâåòàìè ôîíà è òåêñòà, â ïðîöåíòàõ, ïî óìîë÷àíèþ-3 
$angle_max      = 18;   //Ìàêñèìàëüíûé óãîë îòêëîíåíèÿ îò ãîðèçîíòàëè ïî ÷àñîâîé ñòðåëêå è ïðîòèâ, ïî óìîë÷àíèþ-20 

$font_arr=glob(dirname(__FILE__)."/fonts/*.ttf"); 

$im=imagecreate($img_x, $img_y); 
//ñîçäàåì íåîáõîäèìûå öâåòà 
$text_color = imagecolorallocate($im, 0, 0, 0);       //öâåò òåêñòà 
$nois_color = imagecolorallocate($im, 0, 0, 0);       //öâåò çàøóìëÿþùèõ òî÷åê è ëèíèé 
$img_color  = imagecolorallocate($im, 255, 255, 255); //öâåò ôîíà 
//çàëèâàåì èçîáðàæåíèå ôîíîâûì öâåòîì 
imagefill($im, 0, 0, $img_color); 
// ïåðåìåííîé $number áóäåò õðàíèòüñÿ ÷èñëî, ïîêàçàííîå íà èçîáðàæåíèè 
$number=''; 

for (
$n=0; $n<$num_n; $n++){ 
    
$num=rand(0,9); 
    
$number.=$num; 
    
$font_size=rand($font_min_size, $img_y/2); 
    
$angle=rand(360-$angle_max,360+$angle_max); 

    
$font_cur=rand(0,count($font_arr)-1); 
    
$font_cur=$font_arr[$font_cur]; 
    
//âû÷èñëåíèå êîîðäèíàò äëÿ êàæäîé öèôðû, ôîðìóëû îáåñïå÷èâàþò íîðìàëüíîå ðàñïîëîæíèå 
    //ïðè ëþáûõ çíà÷åíèÿõ ðàçìåðîâ öèôðû è èçîáðàæåíèÿ 
    
$y=rand(($img_y-$font_size)/4+$font_size, ($img_y-$font_size)/2+$font_size); 

    
$x=rand(($img_x/$num_n-$font_size)/2, $img_x/$num_n-$font_size)+$n*$img_x/$num_n; 

    
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_cur, $num); 
}; 
//Âû÷èñëÿåì ÷èñëî "çàøóìëåííûõ" ïèêñåëîâ 
$nois_n_pix=round($img_x*$img_y*$nois_percent/100); 
//çàøóìëÿåì èçîáðàæåíèå ïèêñåëàìè öâåòà òåêñòà 
for ($n=0; $n<$nois_n_pix; $n++){ 
    
$x=rand(0, $img_x); 
    
$y=rand(0, $img_y); 
    
imagesetpixel($im, $x, $y, $nois_color); 
}; 
//çàøóìëÿåì èçîáðàæåíèå ïèêñåëàìè ôîíîâîãî öâåòà 
for ($n=0; $n<$nois_n_pix; $n++){ 
    
$x=rand(0, $img_x); 
    
$y=rand(0, $img_y); 
    
imagesetpixel($im, $x, $y, $img_color); 
}; 

$lines_n=rand(0,$lines_n_max); 
//ïðîâîäèì "çàøóìëÿþùèå" ëèíèè öâåòà òåêñòà 
for ($n=0; $n<$lines_n; $n++){ 
    
$x1=rand(0, $img_x); 
    
$y1=rand(0, $img_y); 
    
$x2=rand(0, $img_x); 
    
$y2=rand(0, $img_y); 
    
imageline($im, $x1, $y1, $x2, $y2, $nois_color); 
}; 

Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); 
Header("Cache-Control: no-cache, must-revalidate"); 
Header("Pragma: no-cache"); 

header("Content-type: image/png"); 
imagepng($im); 
imagedestroy($im); 

// ïåðåìåííîé $number õðàíèòñÿ ÷èñëî, ïîêàçàííîå íà èçîáðàæåíèè 

?> 

êîãäà ÿ ïûòàþñü åãî âñòàâèòü, òî ðèñóåò íå êàðòèíêó, à èåðîãëèôû, òèïà òàêèõ:

‰PNG  IHDRPÒüÆ”PLTEÿÿÿ¿¿¿???___ŸŸŸßßßV R%§IDATxœ}SMOÂ@Ý"=îj"Þ:Ûê� �Ø„Ä#/Þ�‚7Ø&#152;à‘ !z#Cü·vfJYœ¤Ùéî›7óÞ¶B ûMÐ¥Jç';� PçÌBåŒZ)kOí•BÞº™êµ�Ú&#152;�~a4Û볓@»d8–£ÂA&¿jp Ì´KÀνtôMðñêàÒ4½/D*%Ÿ… Ž4L&#152;D%\ë§½�±0­‚– õx8lôY&'t0H:}®^&ZAJz4”.²X72ÎIõ•S}QÊ™K¯À#OF<К�•ˆÏ!–U:™œNƒ–KCöå�gRïu‡DmÜŠ¿ˆØ_ûi�€¨èuy¿1]iÔ__±YsCŒ�Á³Q 4<Þa_ ó§å"½,©zlOØ4¡&Þ³°Œ¾Í*Øro‘1r¾IÌöNb÷�5�ÿ‘'„uOYŽnŸ½T(i´F¦Õ“ëA~› dJð‡³MQÚ²Lí0î ÿ,Ö?“‡ÊiQ­ªmxào€´Æ [ ÕGYïò?1;ä¨(ýX‰ìšÇH:€ÉIEND®B'‚

ìîæåò êòî çíàåò â ÷åì ïðè÷èíà.

   
 
 àâòîð: RV   (12.03.2006 â 05:15)   ïèñüìî àâòîðó
 
   äëÿ: FaStY   (12.03.2006 â 02:04)
 

à åñëè íå êóäà íå âñòàâëÿòü òî êàðòèíêà âûâîäèòñÿ ïðè çàïóñêå ñêðèïòà?
è êàê âñòàâëÿåøü

$font_arr="GARABD.TTF";
......
$font_cur=$font_arr
//$font_cur=$font_arr[$font_cur];
...................
âîò òàê îíà ó ìåíÿ âûâåëàñü

   
 
 àâòîð: FaStY   (12.03.2006 â 11:01)   ïèñüìî àâòîðó
 
   äëÿ: RV   (12.03.2006 â 05:15)
 

äà, åñëè íèêóäà íå âñòàâëÿþ, òî âñå íàìàíàíà, à âûâîæó ÿ åå òàê:

imagepng($im); 

ïîïûòàëñÿ ñäåëàòü êàê òû, íî íè÷åãî íå ïîëó÷èëîñü

   
 
 àâòîð: Panker   (12.03.2006 â 11:25)   ïèñüìî àâòîðó
 
   äëÿ: FaStY   (12.03.2006 â 11:01)
 

êàðòèíêó ýòó ìîæíî âûâåñòè <img src=ÍÀÇÂÀÍÈÅ ÔÀÉËÀ ÃÄÅ ÝÒÎÒ ÑÊÐÈÏÒ>

   
 
 àâòîð: Ñàíÿ   (12.03.2006 â 13:54)   ïèñüìî àâòîðó
 
   äëÿ: FaStY   (12.03.2006 â 02:04)
 

Ñòðîêè
$font_cur=rand(0,count($font_arr)-1); 
$font_cur=$font_arr[$font_cur];

Ñòîèò çàìåíèòü íà
$font_cur="èìÿ_øðèôòà.ttf";

è ýòîò øðèôò êèíóòü â ïàïêó ñî ñêðèïòîì.

Ó ìåíÿ ïîëó÷èëîñü òîëüêî òàê.

   
 
 àâòîð: FaStY   (12.03.2006 â 15:27)   ïèñüìî àâòîðó
 
   äëÿ: Ñàíÿ   (12.03.2006 â 13:54)
 

íåà, âñå ðàâíî íå ïîëó÷àåòñÿ:(
ÿ ñäåëàë ôóíêöèþ ïîìåñòèë òóäà ñêðèïò:

function vcode()
{
$img_x          = 80;   //ÈØàØÝРØ×ÞÑàÐÖÕÝØï, ßÞ ãÜÞÛçÐÝØî-100 
$img_y          = 26;   //²ëáÞâРØ×ÞÑàÐÖÕÝØï, ßÞ ãÜÞÛçÐÝØî-30 
$num_n          = 5;    //ÇØáÛÞ æØäà, default-4 
$font_min_size  = 12;   //¼ØÝØÜÐÛìÝëÙ àÐ×ÜÕà èàØäâÐ, ßÞ ãÜÞÛçÐÝØî-12 
$lines_n_max    = 2;    //¼ÐÚáØÜÐÛìÝÞÕ çØáÛÞ èãÜÞÒëå ÛØÝØÙ, ßÞ ãÜÞÛçÐÝØî-2 
$nois_percent   = 5;    //·ÐèãÜÛÕÝÝÞáâì æÒÕâÐÜØ äÞÝРؠâÕÚáâÐ, Ò ßàÞæÕÝâÐå, ßÞ ãÜÞÛçÐÝØî-3 
$angle_max      = 10;   //¼ÐÚáØÜÐÛìÝëÙ ãÓÞÛ ÞâÚÛÞÝÕÝØï Þâ ÓÞàØ×ÞÝâÐÛØ ßÞ çÐáÞÒÞÙ áâàÕÛÚÕ Ø ßàÞâØÒ, ßÞ ãÜÞÛçÐÝØî-20 


$im=imagecreate($img_x, $img_y); 
//áÞ×ÔÐÕÜ ÝÕÞÑåÞÔØÜëÕ æÒÕâР
$text_color = imagecolorallocate($im, 0, 0, 0);       //æÒÕâ âÕÚáâР
$nois_color = imagecolorallocate($im, 0, 0, 0);       //æÒÕâ ×ÐèãÜÛïîéØå âÞçÕÚ Ø ÛØÝØÙ 
$img_color  = imagecolorallocate($im, 255, 255, 255); //æÒÕâ äÞÝР
//×ÐÛØÒÐÕÜ Ø×ÞÑàÐÖÕÝØÕ äÞÝÞÒëÜ æÒÕâÞÜ 
imagefill($im, 0, 0, $img_color); 
//² ßÕàÕÜÕÝÝÞÙ $number ÑãÔÕâ åàÐÝØâìáï çØáÛÞ, ßÞÚÐ×ÐÝÝÞÕ ÝРØ×ÞÑàÐÖÕÝØØ 
$number=''; 

for ($n=0; $n<$num_n; $n++){ 
    $num=rand(0,9); 
    $number.=$num; 
    $font_size=rand($font_min_size, $img_y/2); 
    $angle=rand(360-$angle_max,360+$angle_max); 

$font_cur="BOD_BI.ttf";
    //ÒëçØáÛÕÝØÕ ÚÞÞàÔØÝÐâ ÔÛï ÚÐÖÔÞÙ æØäàë, äÞàÜãÛë ÞÑÕáßÕçØÒÐîâ ÝÞàÜÐÛìÝÞÕ àÐáßÞÛÞÖÝØÕ 
    //ßàØ ÛîÑëå ×ÝÐçÕÝØïå àÐ×ÜÕàÞÒ æØäàë Ø Ø×ÞÑàÐÖÕÝØï 
    $y=rand(($img_y-$font_size)/4+$font_size, ($img_y-$font_size)/2+$font_size); 

    $x=rand(($img_x/$num_n-$font_size)/2, $img_x/$num_n-$font_size)+$n*$img_x/$num_n; 

    imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_cur, $num); 
}; 
//²ëçØáÛïÕÜ çØáÛÞ "×ÐèãÜÛÕÝÝëå" ßØÚáÕÛÞÒ 
$nois_n_pix=round($img_x*$img_y*$nois_percent/100); 
//×ÐèãÜÛïÕÜ Ø×ÞÑàÐÖÕÝØÕ ßØÚáÕÛÐÜØ æÒÕâРâÕÚáâР
for ($n=0; $n<$nois_n_pix; $n++){ 
    $x=rand(0, $img_x); 
    $y=rand(0, $img_y); 
    imagesetpixel($im, $x, $y, $nois_color); 
}; 
//×ÐèãÜÛïÕÜ Ø×ÞÑàÐÖÕÝØÕ ßØÚáÕÛÐÜØ äÞÝÞÒÞÓÞ æÒÕâР
for ($n=0; $n<$nois_n_pix; $n++){ 
    $x=rand(0, $img_x); 
    $y=rand(0, $img_y); 
    imagesetpixel($im, $x, $y, $img_color); 
}; 

$lines_n=rand(0,$lines_n_max); 
//ßàÞÒÞÔØÜ "×ÐèãÜÛïîéØÕ" ÛØÝØØ æÒÕâРâÕÚáâР
for ($n=0; $n<$lines_n; $n++){ 
    $x1=rand(0, $img_x); 
    $y1=rand(0, $img_y); 
    $x2=rand(0, $img_x); 
    $y2=rand(0, $img_y); 
    imageline($im, $x1, $y1, $x2, $y2, $nois_color); 
}; 

Header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); 
Header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT"); 
Header("Cache-Control: no-cache, must-revalidate"); 
Header("Pragma: no-cache"); 


header("Content-type: image/png"); 
imagepng($im); 
imagedestroy($im); 

}

ïîòîì ÿ âñòàâëÿþ

vcode();
ãäå ìíå íóàæíî, è â îïåðå ïîêàçûâàåò òîëüêî êàðòèíêó(íî íå ñàìó êàðòíèêó, à òîëüêî, ÷òî òàì äîëæíà áûòü êàðòèíêà), à â IE ïîêàçââàåò ïîìèìî òàáëèö(â êîòîðûå ÿ âñòàâèë ýòó ôóíêöèþ) èåðîãëèôû :(

   
 
 àâòîð: Akira   (12.03.2006 â 16:39)   ïèñüìî àâòîðó
 
   äëÿ: FaStY   (12.03.2006 â 15:27)
 

Åñëè âû âûçûâàåòå â ñêðèïòå vcode(); òî,
1) Íå äîëæíî áûòü íå êàêèõ echo | print è òä.
2) Ïåðåä óøêàìè (<? ?>) íå äîëæíî áûòü ïðîáåëîâ èëè ïåðåâîäà íîâîé ñòðîêè.
Ïðèìåð: img.php

<?
vcode
(); 
?>

Èñïîëüçîâàíèå:

<img src="img.php" />

   
Rambler's Top100
ââåðõ

Rambler's Top100 ßíäåêñ.Ìåòðèêà ßíäåêñ öèòèðîâàíèÿ