PHP Fotoalbum
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
beispiel
bild
code
datei
einlesen
foto
header
http
image
kleinen bilder
list
machen
null
ordner
server
speichern
type
verraten
zusammengefasst beitrag
-
Hallo Leute,
will mir ein einfaches Fotoalbum basteln. Bis jetzt hab ich es geschaft Bilder
per php kleiner erscheinen zu lassen, damit sie bei einer Komplettansicht der Bilder
schneller angezeigt werden.
Wie kann man Ordner und deren Bildernamen aus einem Verzeichniss herauslesen??
An Profis: Macht das dem PHP-Compiler eh nichts das er bei jedem Seitenaufruf alle Bilder
neu kleinerrechnen muss?? Es funzt supi, aber ist es zu Rechenintensiv?
mfg Finch
Hier eine Beispiel Ordnerstruktur:
Fotos
-> Album1
----> Bild1
----> Bild2
----> Bild3
-> Album2
---->...
-> Album3
---->...
Ich möchte in ein Array zb Fotos(x) alle Alben einlesen...
Sollte man sich dan für das Album1 entscheiden möchte ich alle Bilder in ein Array Bilder(xx) einlesen...
/Edit: Doppelpost zusammengefasst
Beitrag geändert: 25.4.2008 20:20:02 von trueweb -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
finch schrieb:
Wie kann man Ordner und deren Bildernamen aus einem Verzeichniss herauslesen??
mfg Finch
Das sollte dir dabei helfen: http://de2.php.net/manual/de/ref.dir.php
Um die Last zu lindern solltest du auf jedenfall die verkleinerten Bilder zwischenspeichern und nur dann ein Bild neu generieren wenn kein kleines existiert.
Beitrag geändert: 25.4.2008 8:22:41 von polopage -
Haut schon bissi hin. Schaut es euch mal an:
http://iwiwiw.fiiinich.iat.itti/Teisit.ipihp //hab den Link tot gmacht sonst wird noch der ganze Server voll mit kleinen Bildern :-)
Ich Finde er rechnet die Bilder aber so extrem schnell um will irgendwie will ich die kleinen Bilder nicht zwischenspeichern...
Beitrag geändert: 25.4.2008 10:50:59 von finch
Beitrag geändert: 25.4.2008 15:35:45 von finch -
Du benutzt bestimmt die funktion imagecopyresized() die macht aber auch keinen schönes bild, imagecopyresampled() macht schon bessere qualität, dauert aber auch länger, ich würde die kleinen bilder auch ziwschenspeichern...
-
hast recht ich verwende imagecopyresized() , werd mal imagecopyresampled() probieren!
Super ihr sagt das so leicht kleine Bilder zwischenspeichern... wie geht ihr da vor?
(Keinen Code nur Überlegung) -
imagejpeg(), imagepng(), imagegif() müssten es sein.. damit kannste in datei speichern . mehr infos unter php.net -
Ja, das speichern würde ich schon schaffen, aber das ganze zur Anzeige bringen, ka. Irgendwie hab ich keine
Idee wie ich da vorgehen soll. Kann mir pls jmd ne Grundsätzliche Überlegung verraten? -
Mit readfile() kannst du nicht nur Textdateien, sondern auch binäre Dateien auslesen ;) .
Ryan -
und für was soll das gut sein?
-
Du kannst damit die einzelne auf dem Server gecachte Bilder mit PHP anzeigen lassen.
<?php header(\"Content-Type: image/jpeg\"); readfile($picture_relative_url); exit; ?>
-
@ryanblack
Da ja die gespeicherten Bilder vollwertig sind, reicht es doch nur den pfad zum Bild innerhalb der Ausgabe (template, oder osnst was) innerhalb eines img Tags anzugeben. So spart man sich doch das lesen und extra header senden. Zudem ist es flexibeler da du so nicht auf die Bildtypen achten musst.
Beitrag geändert: 25.4.2008 21:25:36 von polopage -
Noch mal langsam bitte, hier ist mein Code mit dem ich die Bilder verkleinere:
// The file $filename = \'Bildergal1/FShoot002.jpg\'; // Set a maximum height and width $width = 150; $height = 150; // Content type header(\'Content-type: image/jpeg\'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); if ($width && ($width_orig < $height_orig)) { $width = ($height / $height_orig) * $width_orig; } else { $height = ($width / $width_orig) * $height_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output imagejpeg($image_p, Null, 50);
Und wo soll ich da bitte den angefürten Code einfügen?
-
Dein Script gibt die Bilder dirket aus. Lass header(\'Content-type: image/jpeg\'); weg und ändere imagejpeg($image_p, Null, 50); so ab, dass die Bilder gespeichert werden. Zum Beispiel imagejpeg($image_p, \'pfad_zum_thumbnails_ordner/\'.$filename);
http://de3.php.net/imagejpeg -
Das ist mir schon klar aber für was braucht man:
<?php header(\"Content-Type: image/jpeg\"); readfile($picture_relative_url); exit; ?>
???
-
Wenn du die Bilder wieder darstellen willst, kannst du das so machen. Allerdings ist das völlig unnötig, da du auch einfach ein echo mit img-Tag verwenden kannst (steht oben auch schon irgendwo).
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage