wudu Posted March 15, 2006 Report Share Posted March 15, 2006 kods: http://paste.php.lv/3455 problēma: mainīgajam $skaitlis tiek piešķirta gadījuma vērtība un tas tiek izvadīts kā PNG bilde. Tiktāl viss būtu labi, taču pēc izvades mainīgā $skaitlis vērtība vairs nav tāda pati kā izvadītajā bildē. jautājums: kāpēc un kā to var labot? p.s. ja mainīgajam $skaitlis vērtību piešķir manuāli ($skaitlis = 84), tad viss strādā kā vajag. šādi: $x = rand(1,100); $skaitlis = $x; arī nestrādā kā vajadzētu... par to pārliecināties var, palaižot kodu (uzģenerējas skaitlis) un paskatoties sourci. tur stāv pavisam cits skaitlis. mistika, gļuks vai tas tāpēc, ka es gulēt gribēju, kad šito kodu rakstīju? Link to comment Share on other sites More sharing options...
bubu Posted March 15, 2006 Report Share Posted March 15, 2006 Vai nav tā, ka fjai ImageTTFText jāpadod strings kā pēdējais parametrs nevis skaitlis? Tu paskaties cik ir skaitils pirms fjas izsaukšanas: echo $skaitlis; Iespējams, ka ImageTTFText uztver skaitli kā kautkādu ascii simbola kodu. Ja tā, tad nokasto uz stringu. Link to comment Share on other sites More sharing options...
wudu Posted March 15, 2006 Author Report Share Posted March 15, 2006 pievienojot burtus ap skaitli ($skaitlis = "a".rand(1,100)."b";), situācija nemainās - burti paliek, skaitlis mainās (piem. a65b -> a12b). un šajā gadījumā tas jau ir string tipa. :| arī izdzenot cauri kkādām fjām, kuras rezultātu atgriež kā string. pirms ImageTTFText skaitlis ir tāds pats kā beigās (tātad to man arī vajag), bet uz bildes tiek uzzīmēts pavisam kas cits... šis arī nestrādā: $x = rand(0,9); switch ($x){ case 0: $skaitlis = "0"; break; case 1: $skaitlis = "1"; break; case 2: $skaitlis = "2"; break; case 3: $skaitlis = "3"; break; case 4: $skaitlis = "4"; break; case 5: $skaitlis = "5"; break; case 6: $skaitlis = "6"; break; case 7: $skaitlis = "7"; break; case 8: $skaitlis = "8"; break; case 9: $skaitlis = "9"; break; } bet lūk šādi strādā: $skaitlis = "5"; Link to comment Share on other sites More sharing options...
bubu Posted March 15, 2006 Report Share Posted March 15, 2006 Nezinu kā tev, bet man tavs kods strādā kā vajag. Ja echo $skaitlis pirms ImageTTFText fjas izvada 96, tad arī bildē ir 96 un pēc fjas izsaukuma arī ir 96: <?php $himg = ImageCreate(100, 100); $bgcolor = ImageColorAllocate($himg, 230,230,230); $txtcolor= ImageColorAllocate($himg, 0,0,0); ImageFill($himg, 0, 0, $bgcolor); $skaitlis = rand(1,100); echo $skaitlis, "\n"; ImageTTFText ($himg, 30, 0, 0, 30, $txtcolor, "verdana.ttf", $skaitlis); ImagePNG($himg, '_fails.png'); echo $skaitlis, "\n"; ?> Par tavu ūberswitchu - piedod, bet vai tu jocīgs esi? :) $skaitlis = (string)$x; tak! Gadījumā fonts nav tāds "speciāls" - ar sajauktiem cipariem? Link to comment Share on other sites More sharing options...
wudu Posted March 15, 2006 Author Report Share Posted March 15, 2006 (edited) njā, kad ieraksta failā, tad ir ok, bet noņem pirmo [echo $skaitlis, "\n";], uzliec lai nerakstās failā un atkal vecie pīrāgi. man tieši vajag lai bildi varētu parādīt (turpat un uzreiz), nevis nokačāt ar pareizu ciparu. ūberswitch tāds taisīts ar nolūku, lai parādītu ka itkā vienāda vērtības piešķiršana, bet kā tiek iejaukts rand, tā ImageTTFText kko gļuko. fonts ir visparastākais, nekas nav mainīts Edited March 15, 2006 by wudu Link to comment Share on other sites More sharing options...
bubu Posted March 15, 2006 Report Share Posted March 15, 2006 ūbersvitču tak ar šo var aizstāt: $skaitlis = (string)$x; Par to jau tak pasmējos. Man apacis nav uzlikts un slinkums likt. Es to php komandrindā laižu. Pag bet nesaprotu - kāda atšķirība kur php skriptu izpilda? Tak cipari no tā sajukt nevar. Es saprastu, ja galīgi bildes visi pikseļi sajuktu, tad vēl kautko varētu padomāt, ka apacis vainīgs.. Bet ja cipari mainās, bet burti nē, tad tu kautko tur dīvainu daries... Link to comment Share on other sites More sharing options...
wudu Posted March 15, 2006 Author Report Share Posted March 15, 2006 nu ja, es jau ar brīnos. nekā cita izņemot šī koda tur nav, tāpēc ietekmēt to nekas nevar. Link to comment Share on other sites More sharing options...
Delfins Posted March 16, 2006 Report Share Posted March 16, 2006 (edited) A kā var uzreiz vienlaicīgi drukāt txt un img ? tas ir nepareizi... ImagePNG($himg); die("\n\n$skaitlis"); PS: bubu variants strādā nevainojami... Edited March 16, 2006 by Delfins Link to comment Share on other sites More sharing options...
wudu Posted March 16, 2006 Author Report Share Posted March 16, 2006 (edited) da ne par to ir runa - pareizi vai nepareizi, tas tikai paarbaudei... tur jau taa lieta, ka man neder bubu variants. man to bildi vajag turpat un uzreiz, nevis saglabaat Edited March 16, 2006 by wudu Link to comment Share on other sites More sharing options...
Delfins Posted March 17, 2006 Report Share Posted March 17, 2006 Rupji runājot, `b*`, izņem otro parametru, aizkomentē visus `echo` un viss būs štokos... vai tas tiešām ir tik grūti? Link to comment Share on other sites More sharing options...
wudu Posted March 17, 2006 Author Report Share Posted March 17, 2006 kam izņemt 2. parametru? echo, die - tie neko neietekmē, pamēģini izvades vietā ielikt, lai ieraksta failā un tad pārbaudi to kas parādās uz zīmējuma un to, kas ir failā. ja tev izdevās panākt to ko es lūdzu (praksē, nevis teorijā), tad vai tu nevarētu man parādīt pašu kodu? ja tu tikai saki, ka tam un šitam būtu jāstrādā - varbūt ir vērts vispirms pārbaudīt? Link to comment Share on other sites More sharing options...
Delfins Posted March 17, 2006 Report Share Posted March 17, 2006 b*, protams ka pārbaudīju.. http://php.lv/f/index.php?s=&showtopic=423...indpost&p=34173 Link to comment Share on other sites More sharing options...
Recommended Posts