23. marts 2005 - 14:26
Der er
41 kommentarer og 1 løsning
Billedskift i mappe
Hey... Står lige og mangler et script som kan skifte mellem nogle billeder der ligger i en mappe? Dem jeg har fundet, er hvor man selv skal skrive billedernes navne og det tager ligesom lang tid da jeg har mange... Håber der er nogle der kan hjælpe
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
23. marts 2005 - 17:14
#1
Jeg forstår ikke helt hvad du vil... Skal det skifte automatisk? Ud fra hvilke kriterier? Tilfældigt ved hvert reload? Skal man selv vælge fra en liste? Eller noget helt andet?
23. marts 2005 - 18:19
#2
Jeps den skal skifte automatisk efter f.eks. 3 sekunder og det skal bare være tilfældigt.... En form for slideshow....
23. marts 2005 - 18:24
#3
Ingen garanti for at folk ikke ser det samme billede, det kunne du måske omgå med sessions... <?php $files = glob( "mappe/*.jpg" ); shuffle( $files ); $billede = "mappe/" . $files[0]; ?> <html> <head> <meta http-equiv="refresh" content="3;URL=<?= $_SERVER['PHP_SELF'] ?>" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Tilfældigt billede</title> </head> <body> <img src="<?= $billede ?>" alt="" /> </body> </html>
23. marts 2005 - 18:33
#4
Kan ikke få det til at virke.... Det eneste jeg skal ændre er det ikke selve mappen?
23. marts 2005 - 19:54
#5
Jo, det kræver også at dine filer hedder noget med .jpg i enden (det er ikke det samme som .JPG)... Hvis scriptet ligger i /home/ditnavn/public_html og mappen er /home/ditnavn/public_html/billeder skal du blot ændre "mappe" de to steder til "billeder"
23. marts 2005 - 22:11
#6
Har fået det til at virke... Men ville ikke have den til at refreshe men bare skifte... da den ellers skal til at uploade hver gang...
23. marts 2005 - 22:13
#7
skal jeg ikke sætte alt="" til noget?
23. marts 2005 - 22:26
#8
uploade? nej alt="" er alternativ teksten som vises hvis billedet ikke kan vises...
23. marts 2005 - 22:27
#9
Okay har fået det til at virke som det skal men jeg vil ikke sige det er tilfældigt... Den skfiter mellem de 3 første billeder der ligger i en mappe, hvor der ligger 200 billeder... hmmm?
23. marts 2005 - 22:28
#10
23. marts 2005 - 22:29
#11
Det burde være helt tilfældige. Prøv for sjov dette, der viser hvilke filer den har valgt: <?php $files = glob( "mappe/*.jpg" ); shuffle( $files ); $billede = "mappe/" . $files[0]; ?> <html> <head> <meta http-equiv="refresh" content="3;URL=<?= $_SERVER['PHP_SELF'] ?>" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Tilfældigt billede</title> </head> <body> <img src="<?= $billede ?>" alt="" /> <pre><? var_dump( $files ) ?></pre> </body> </html>
23. marts 2005 - 22:41
#12
se lige... :D
23. marts 2005 - 22:41
#13
Det er vidst det man kalder tilfældigt :D
23. marts 2005 - 22:42
#14
Den finder kun 3 billeder - Der *er* kun 3 billeder der matcher "mappe/*.jpg" er du sikker på de andre ikke hedder *.JPG eller lign?
23. marts 2005 - 22:44
#15
23. marts 2005 - 22:52
#16
Jeg kan ikke få den til at opføre sig som dit script...
Prøv lige for sjov at smide index.php ind her:
http://www.lybech.1go.dk/hjemmeside/galleri/18-03-05/ og lav den om til:
<?php
$files = glob( "images/*.jpg" );
shuffle( $files );
$billede = $files[0];
?>
<html>
<head>
<meta http-equiv="refresh" content="3;URL=<?= $_SERVER['PHP_SELF'] ?>" />
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>Tilfældigt billede</title>
</head>
<body>
<img src="<?= $billede ?>" alt="" />
<pre><? var_dump( $files ) ?></pre>
</body>
</html>
23. marts 2005 - 22:55
#17
Okay nu virker den...... Hvordan gør jeg så, sådan at billedet der vises kun er i 50% i højden og bredden?
23. marts 2005 - 22:59
#19
Du kunne prøve at sætte en højde/bredde på <img tag'et, eller finde højden/bredden og gøre det: <?php $files = glob( "images/*.jpg" ); shuffle( $files ); $billede = $files[0]; list( $w, $h, $t, $attr ) = getimagesize( $billede ); ?> <html> <head> <meta http-equiv="refresh" content="3;URL=<?= $_SERVER['PHP_SELF'] ?>" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Tilfældigt billede</title> </head> <body> <img src="<?= $billede ?>" <?= $attr ?> alt="" /> <pre><? var_dump( $files ) ?></pre> </body> </html>
23. marts 2005 - 22:59
#20
Okay nu behøver jeg ikke ligge den i mappen hvor mappen med billerne ligger i... men den skifter ikke billede... se
http://www.lybech.1go.dk/test.php
23. marts 2005 - 23:01
#21
Den skifter fint hos mig :) Forresten sagde du jo 50% ;) så mit script: <?php $files = glob( "images/*.jpg" ); shuffle( $files ); $billede = $files[0]; list( $w, $h, $t, $attr ) = getimagesize( $billede ); $w /= 2; $h /= 2; ?> <html> <head> <meta http-equiv="refresh" content="3;URL=<?= $_SERVER['PHP_SELF'] ?>" /> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Tilfældigt billede</title> </head> <body> <img src="<?= $billede ?>" style="width: <?= $w ?>px; height: <?= $h ?>px;" alt="" /> <pre><? var_dump( $files ) ?></pre> </body> </html>
23. marts 2005 - 23:05
#22
Jahhh.... nu virker det perle.... hvad hvis jeg vil have border="1!.. Og hvis jeg nu ligger den ind på en side opdatere den så hele siden eller er det kun billedet...
23. marts 2005 - 23:07
#23
Den vil opdatere hele siden. Hvis du kun vil have udskiftet billedet skal du enten smide det der i en iframe, eller bruge javascript til at skifte billedet ud i stedet. Mht border=1, det sætter du bare i style'en for billedet - <img src="<?= $billede ?>" style="width: <?= $w ?>px; height: <?= $h ?>px; border: 1px solid black;" alt="" /> f.eks.
23. marts 2005 - 23:14
#24
Prøv at se om dette virker. To scripts! vispic.php: <?php header( 'Expires: 0' ); $files = glob( "images/*.jpg" ); shuffle( $files ); $billede = $files[0]; header( 'Content-Type: image/jpeg' ); echo file_get_contents( $billede ); ?> Og der hvor billedet skal være på: <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" /> <title>Tilfældigt billede</title> <script type="text/javascript" language="javascript"> function chPic() { p = document.getElementById( "pic" ); p.src = 'vispic.php?' + Math.floor( Math.random() * 999999999 ); } window.onload = function () { setTimeout( "chPic();", 3000 ); } </script> </head> <body> <img id="pic" src="vispic.php" width="50%" height="50%" alt=""> </body> </html>
23. marts 2005 - 23:17
#25
Hmm javascriptet i den sidste burde nok være: <script type="text/javascript" language="javascript"> function chPic() { p = document.getElementById( "pic" ); p.src = 'vispic.php?' + Math.floor( Math.random() * 999999999 ); setTimeout( "chPic();", 3000 ); } window.onload = function () { setTimeout( "chPic();", 3000 ); } </script> Ellers bliver den ikke ved at skifte ;)
23. marts 2005 - 23:19
#26
Takker mange gange... Nu virker det perle..... Tak x 60
23. marts 2005 - 23:23
#28
:) det med størrelsen virker vist ikke helt - har lige prøvet at teste på det...
23. marts 2005 - 23:25
#29
Man kan ikke sige 50%... ved bare ikke hvorfor
23. marts 2005 - 23:31
#30
Kan du løse problemet?
23. marts 2005 - 23:32
#31
Det er fordi den vil have at det skal være 50% af klientområdet... Jeg tror man er nødt til at resize billedet on-the-fly... Prøv at lave vispic.php om: <?php header( 'Expires: 0' ); $files = glob( "kanin/*.JPG" ); shuffle( $files ); $billede = $files[0]; header( 'Content-Type: image/jpeg' ); $im = imagecreatefromjpeg( $billede ); $w = imagesx( $im ); $h = imagesy( $im ); $nw = ( $w / 2 ); $nh = ( $h / 2 ); $dst = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dst, $im, 0, 0, 0, 0, $nw, $nh, $w, $h ); imagejpeg( $dst, null, 100 ); imagedestroy( $dst ); imagedestroy( $im ); ?> Så kan du også lave sjove ting som: <?php header( 'Expires: 0' ); $files = glob( "kanin/*.JPG" ); shuffle( $files ); $billede = $files[0]; header( 'Content-Type: image/jpeg' ); $im = imagecreatefromjpeg( $billede ); $w = imagesx( $im ); $h = imagesy( $im ); $nw = ( $w / 2 ); $nh = ( $h / 2 ); $dst = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dst, $im, 0, 0, 0, 0, $nw, $nh, $w, $h ); $white = imagecolorallocate( $dst, 255, 255, 255 ); imagestring( $dst, 5, 5, 5, "mlybech", $white ); imagejpeg( $dst, null, 100 ); imagedestroy( $dst ); imagedestroy( $im ); ?>
23. marts 2005 - 23:33
#32
Ja, du skal lige lave "kanin/*.JPG" om til hvad du selv havde før ;) Jeg har bare lige testet lidt :)
23. marts 2005 - 23:38
#33
Hey det er cool det der med navn... men det virker kun på det første billed også kan den ikke vise flere billeder....
23. marts 2005 - 23:40
#34
Mnæh, du skal bare huske at ændre alle vispic.php til sjov.php ;P
23. marts 2005 - 23:41
#35
Nu hvor du jo er så godt i gang :D kan det så lade sig gøre at ændre skrifttype?
23. marts 2005 - 23:49
#37
er det så noget i stilen af: <?php header( 'Expires: 0' ); $files = glob( "hjemmeside/galleri/18-03-05/images/*.jpg" ); shuffle( $files ); $billede = $files[0]; header( 'Content-Type: image/jpeg' ); $im = imagecreatefromjpeg( $billede ); $w = imagesx( $im ); $h = imagesy( $im ); $nw = ( $w / 2 ); $nh = ( $h / 2 ); $dst = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dst, $im, 0, 0, 0, 0, $nw, $nh, $w, $h ); $white = imagecolorallocate( $dst, 255, 255, 255 ); imagettftext($im, 20, 0, 10, 20, $black, "/front/verdana.ttf", "Testing... Omega: &#937;"); imagejpeg( $dst, null, 100 ); imagedestroy( $dst ); imagedestroy( $im ); ?>
23. marts 2005 - 23:52
#38
Jooh, hvis du ændrer: $white = imagecolorallocate( $dst, 255, 255, 255 ); til: $black = imagecolorallocate( $dst, 0, 0, 0 ); og hvis du har en verdana.ttf liggende i /front/ folderen (hvilket du måske ikke har - du kan uploade en til en ny "front" folder og bruge "front/verdana.ttf")
23. marts 2005 - 23:55
#39
Det her virker ikke: <?php header( 'Expires: 0' ); $files = glob( "hjemmeside/galleri/18-03-05/images/*.jpg" ); shuffle( $files ); $billede = $files[0]; header( 'Content-Type: image/jpeg' ); $im = imagecreatefromjpeg( $billede ); $w = imagesx( $im ); $h = imagesy( $im ); $nw = ( $w / 2 ); $nh = ( $h / 2 ); $dst = imagecreatetruecolor( $nw, $nh ); imagecopyresampled( $dst, $im, 0, 0, 0, 0, $nw, $nh, $w, $h ); $black = imagecolorallocate( $dst, 0, 0, 0 ); imagettftext($im, 20, 0, 10, 20, $black, "front/verdana.ttf", "Testing... Omega: &#937;"); imagejpeg( $dst, null, 100 ); imagedestroy( $dst ); imagedestroy( $im ); ?>
24. marts 2005 - 00:18
#40
Kan det løses? Du skal nok få ekstra point da du sådan set har hjulpet mig hele vejen :D
24. marts 2005 - 01:06
#41
imagettftext($im, 20, 0, 10, 20, $black, "front/verdana.ttf", "Testing... Omega: &#937;"); skal nok være: imagettftext($dst, 20, 0, 10, 20, $black, "front/verdana.ttf", "Testing... Omega: &#937;");
24. marts 2005 - 01:38
#42
Kan ikke få det til at virke... lige meget
Vi tilbyder markedets bedste kurser inden for webudvikling