daniiMedlem sedan sep. 2004215 inlägg Hej!
Jag har en mapp med bilder. Så det jag vill göra är att loopa igenom mappen och skapa thumbnails av bilderna. Detta är enkelt. Problemet är att jag presenterar bilderna i table, det betyder att vi har html kod före headern och det går ju inte. Så jag blir tvungen att använda <img src="fil.php" />. Det som jag inte förstår är vad för kod som ska vara vart. Vi säger att jag har fil.php och fil2.php. I fil2.php finns tabellen. Jag antar att i fil.php så ska koden som gör thumbnail av filen finnas men då uppstår ett problem. Jag går in i fil2.php och där kommer all kod som loopar igenom mappen finnas. Den sätter in alla namn i en array. Då ska jag på något sätt få in dessa namn till fil.php som skapar en thumbnail och få tillbaka själva bilden som skrivs ut i tabellen. Eftersom det är flera stycken så ska jag ju loopa igenom hela arrayen.
Hur ska jag gå till väga?
Tacksam för alla synpunkter.
MatteMedlem sedan aug. 20002 975 inlägg Du får skicka med namnet på filen/bilden med din img-länkning typ:
<img src="fil.php?image=bild.jpg">
I fil.php hämtar du sedan filnamnet med $_GET['image'] och arbeta gentemot den.
Namnet på bilden lägger du in från arrayen i din loop i fil2.php.
daniiMedlem sedan sep. 2004215 inlägg Oj visste inte ens att man kunde göra så, trodde man inte fick.
daniiMedlem sedan sep. 2004215 inlägg Det fungerade :)
Är det något jag kan ändra i koden? Det går extremt långsamt:
<html>
<head>
</head>
<body>
<table>
<?php
$pe = array("a.jpg", "b.jpg", "c.jpg");
foreach($pe as $value){
?>
<tr><td>
<img src="test.php?bild=<?php echo $value; ?>" />
</td></tr>
<?php }
?>
</table>
</body>
</html>
<?php
$bild = imagecreatefromjpeg('bilder/' . $_GET['bild']);
$bredd = imagesx($bild);
$hojd = imagesy($bild);
$max = max($bredd, $hojd);
$taBort = ($max > 100) ? 100/$max : 1;
$bredd2 = $bredd * $taBort;
$hojd2 = $hojd * $taBort;
$bild2 = imagecreatetruecolor($bredd2, $hojd2);
imagecopyresampled($bild2, $bild, 0, 0, 0, 0, $bredd2, $hojd2, $bredd, $hojd);
header("Content-type: image/jpeg");
imagejpeg($bild2, '', 90);
imagedestroy($bild);
imagedestroy($bild2);
?>
MatteMedlem sedan aug. 20002 975 inlägg Spara ner dina thumbnails till disk istället, och hämta dom därifrån så går det snabbare.
daniiMedlem sedan sep. 2004215 inlägg Ska ta och göra det. Märkte att "hastigheten" har med storleken (orginalstorleken) på bilden att göra.