Avatar billede jps2mt Nybegynder
24. oktober 2003 - 11:53 Der er 15 kommentarer og
1 løsning

Grafisk counter af 10 seperate billeder

Jeg sidder og leger med at lave en counter af 10 seperatebilleder, som man skal kunne kalde med <img src="counter.php?s=1">

Koden ser sådan her ud:

<?
$_count = $c; // Skal senere hentes ud fra en database
$_style = $s; // Der skal laves flere forskellige styles
$_uname = $u; // Skal på et senere tidspunkt gøres brugerbaseret

if ($_style > "0") {
  $_spath = "cnt_img/";
}

header ("Content-type: image/gif");
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");

for($i=0;$i<strlen($_count);$i++) {
  $_cnt = substr($_count,$i,1);
  $fp = fopen($_spath."cnt".$_style."_num".$_cnt.".gif","r");
  fpassthru($fp);
  fclose($fp);
}
?>

Men den vil, hvis $c angives til 1234, kun vise 1 tallet...Og det samme hvis strengen er 2345, så er det kun 2 tallet der vises...

Burde den ikke "loope" igennem alle tallene og spytte dem ud??
Avatar billede amix Nybegynder
24. oktober 2003 - 13:31 #1
Det er jo strlen den er galt med - - -

Hvis jeg var dig vil jeg splitte den op i arrays og derefter køre loopen med foreach.
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 13:34 #2
Hvordan vil du splitte 1234 op i et array?? Kan jeg ikke lige se...

Det sjove er bare, at hvis jeg echo'er $_cnt ud, istedet for at hente billedet, skriver den FINT 1 2 3 4...Så srtlen, nej, jeg tror ikke på at det er den der gør det...
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 13:35 #3
Har nemlig selv haft i tankerne at lave et array og en foreach, men kan ikke lige se hvordan man skulle splitte en dynamisk streng op...
Avatar billede amix Nybegynder
24. oktober 2003 - 13:38 #4
nej, muligvis var det en dum idé
Avatar billede amix Nybegynder
24. oktober 2003 - 13:43 #5
hmm arw fuck det havde kun kigget på $i<strlen($_count)...
Så ikke at du havde
$_cnt = substr($_count,$i,1);
DOH
Well det ser rigtigt ud ... :D
Måske er det noget med at den kun kan sende en billede ad gangen...
Avatar billede amix Nybegynder
24. oktober 2003 - 13:52 #6
Selvom dette ikke vil løse dit problem da det jo se rimeligt ud med den loop du allerede har så kunne du gøre det således:
  $_count = "1234"; //Det skal være en string
  $tmp=0;
  while(ord($buuh = $_count[$tmp++]) )
    echo "$buuh <br/>";

Men dunno, det løse nok ikke dit problem...
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 14:08 #7
Det giver nøjagtigt det samme... :D
Avatar billede amix Nybegynder
24. oktober 2003 - 15:05 #8
Hmm altså jeg tror du bliver nød til at angribe problemet på en anden måde.
Måske skal du lade php generere et billede.

Altså hvis hver et digit har en bredde på f.eks. 20 px og har en højde på f.eks. 35 px. Og 1234 har 4 digitgs - outbilledet billedet skal være 80 px bred og 35 px høj. Herefter skal du bare "indsætte" de forskellige digits i output billedet . . . og derefter sende billedet tilbage til browseren.

Dog skal du bruge en extension GD - http://www.boutell.com/gd/ Muligvis er dette overkill, men det kunne være en løsning :D
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 16:08 #9
Problemet er at det med tiden skal være muligt at lave et custom counter-set, altså et sæt billeder som brugeren specificerer, og så holder GD ikke mere...
Avatar billede amix Nybegynder
24. oktober 2003 - 17:56 #10
Uhm det gøre den da du kan "måle" hvor høje billederne er.

Ellers tror jeg ikke der er en anden løsning - - - ikke hvad jeg ved i hvert fald.
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 18:03 #11
Jeg kan jo ikke give brugerne adgang til at lave custom billeder, når de genereres af GDLib...
Avatar billede amix Nybegynder
24. oktober 2003 - 21:23 #12
Uhm det skulle ikke være noget problem...
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 22:33 #13
Okay, så må jeg jo se om jeg kan finde noget om emnet, er ikke lige så meget inde i GDLib, men man kan jo læse sig til meget... :D
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 23:13 #14
Okay, har nu kogt lidt rundt i koden, og er kommet frem til dette:

<?
$_count = $c;
$_style = $s;
$_uname = $u;
$_tmp = 0;
if ($_style > "0") {
  $_spath = "cnt_img/";
}

$_width = 16 * strlen($_count);
$_height = 28;

header("Content-type: image/png");
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");

$im = @ImageCreate($_width,$_height) or die("Kunne ikke ligge grunden til tælleren.");

for($i=0;$i<strlen($_count);$i++) {
  $_cnt = substr($_count,$i,1);
  $_img = $_spath."cnt".$_style."_num".$_cnt.".gif";
  $_im = @ImageCreateFromGIF($_img);
  if (!$_im) {
  $im = ImageCreate (200, 30);
  $bgc = ImageColorAllocate ($im, 255, 255, 255);
  $tc = ImageColorAllocate ($im, 0, 0, 0);
  ImageFilledRectangle ($im, 0, 0, 200, 30, $bgc);
  ImageString($im, 1, 5, 5, "Error loading $_img", $tc);
  } else {
  $_dstx = $_width * $i;
  ImageCopy($im,$_im,$_dstx,0,0,0,16,28);
  }
}

ImagePNG($im);

ImageDestroy($im);
?>

Det giver stortset samme resultat :D

http://freelance.trab.dk <- Der kan man se hvordan det ser ud...
Avatar billede jps2mt Nybegynder
24. oktober 2003 - 23:41 #15
Fik det til at virke...

$_width = 16 * strlen($_count);
$_height = 28;

header("Content-type: image/png");
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");

$im = @ImageCreate($_width,$_height) or die("Kunne ikke ligge grunden til tælleren.");

Skulle laves om til dette:

$_width = 16;
$_w = 16 * strlen($_count);
$_height = 28;

header("Content-type: image/png");
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");

$im = @ImageCreate($_w,$_height) or die("Kunne ikke ligge grunden til tælleren.");
Avatar billede jps2mt Nybegynder
03. januar 2004 - 10:06 #16
lukket
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester