Gå til innhold

random_quote_image


Anbefalte innlegg

satt sammen to script jeg har lager for en stund siden for å få til et bilde som forandrer seg for hver gang man reloader det.


<?php

header ("Content-type: image/png");

$fp = fopen('randquote/randquote.txt', r);

       while (++$i and $line = fgets($fp, 4096)) {

           if ((mt_rand() / mt_getrandmax() * $i) < 1) { $it = $line; }

       }

       fclose($fp);



$im = @imagecreate (468, 100)

or die ("Cannot Initialize new GD image stream");

$background_color = imagecolorallocate ($im, 255, 255, 255);

$text_color = imagecolorallocate ($im, 000, 000, 000);

imagestring ($im, 4, 3, 5, "$it", $text_color);

imagepng ($im);

?>

 

nå er bare problemer mitt at div sitater i den fila ganske ofte blir for lange og derav blir de kuttet rett av, det jeg da trenger er en linje som setter inn "n" i $it hvis feks "$it > 15".

 

fant noe på php.net;


$it = str_replace ( chr(10), "n", $it );

men det viste seg å ikke hjelpe.

 

 

kom til å tenke på en annen ting også: jeg vet jo at man kan lage transparent bakgrunn på bilder med de fleste tegneprogrammer men er dette mulig med php og gd?

Lenke til kommentar
Videoannonse
Annonse

kom til å tenke på en annen ting også: jeg vet jo at man kan lage transparent bakgrunn på bilder med de fleste tegneprogrammer men er dette mulig med php og gd?

 

fant svaret på dette og endra litt på bildet delen av scriptet:


$im = @imagecreate (468, 100)

or die ("Cannot Initialize new GD image stream");

$bg = ImageColorAllocate($im,255,255,255);

$tx = ImageColorAllocate($im,0,0,0);

ImageFilledRectangle($im,0,0,200,200,$bg);

$trans=imagecolortransparent($im,$bg);

ImageString($im,3,10,10,"$it",$tx);

 

men jeg lurer fortsatt på hvordan jeg skal få delt den linja.

Lenke til kommentar
WordWrap(), og evt. split stringen til ein array med Explode() (på 'rn'), før du skriver det ut i flere deler? :)

 

leste en del om det her om dagen men får det fortsatt ikke til å fungere som jeg vil prøvde med:


<?php

header ("Content-type: image/png");

$fp = fopen('../randquote/randquote.txt', r);

       while (++$i and $line = fgets($fp, 4096)) {

           if ((mt_rand() / mt_getrandmax() * $i) < 1) { $it = $line; }

       }

       fclose($fp);



//problemet ligger nå i disse to linjene:

$txt = wordwrap($it, 20, "rn", 1);

list($string, $width, $break, $cut) = explode(" ", $txt);





$im = @imagecreate (468, 100)

or die ("Cannot Initialize new GD image stream");

$bg = ImageColorAllocate($im,255,255,255);

$tx = ImageColorAllocate($im,0,0,0);

ImageFilledRectangle($im,0,0,200,200,$bg);

$trans=imagecolortransparent($im,$bg);

ImageString($im,3,10,10,"$txtrn",$tx);



// send the image

ImagePng($im);

?>

 

sånn som det er nå vises hele setningen med et tegn som ligner på : "rY", per 20ende tegn, altså har den forstått at det skal skje noe på de punktene men det blir ikke no linjeskift. Jeg er ganske sikker på at "list()" er skrevet på feil måte men jeg finner ikke ut hvordan den skal være.

Lenke til kommentar
  • 2 måneder senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...