• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

[PHP] Thumbnail erstellen

JKTruz

Jamba
Registriert
18.09.10
Beiträge
55
Hallo,
ich habe einen Homeserver. Auf dem lagern gute 400 Bilder. Nun will ich diese in ne schöne Website verpacken und dann so einstellen das sie auf meinem iPhone richtig schick aussehen (ich hab sie nicht auf meinem iPhone weil mir das sonst zu viel Platz wegnimmt). Ich habe mir jetzt auch schon eine PHP schleife geamacht (gefunden) die alle Bilder aus meinem Bilder Ordner ausliest. Nur sind die Bilder wohl so groß (in Abmessung Dateigröße) Das Safari schon ab dem 10 Bild sag, ne is schluss. Dann kommt nur noch ein [?]. Nun will ich mit PHP eine Funktion erstellen die die Bilder kleiner macht. Ich habe auch schon Google benutzt aber leider geht das nicht so wirklich (also die Scripte die ich finde, nicht Google).
Hier mal meine Schleife:
Code:
<?php
if ($handle = opendir('PICs')) {
   while (false !== ($file = readdir($handle))) {
      echo " Hier gebe ich dann mit <img src="$file" /> die Bilder aus ";
   }
closedir($handle);
}
?>
Auch wenn ich im <img> Tag die breite und höhe angebe hilft das nicht.

Hoffentlich kann mir jemand helfen.

Gruß
Jannik

PS: Ich habe natürlich daran gedacht das ich im echo bereich vor die " ein Backslash setze. Und Optisch sieht das auch nich ein wenig besser aus...
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Du musst natürlich auch die Bilder kleiner machen. Der <img>-Tag steuert ja nur die Darstellung im Browser.

Sieh Dir mal die GD- und ImageMagick-Funktionen in den PHP-Dokumentation an. Dort sind auch Codebeispiele.

Hier der Link zum betreffenden Dokubereich: http://de.php.net/manual/de/refs.utilspec.image.php.

Und weil ich heute meinen guten Tag hab, sogar noch ein Beispiel, wie man Bilder in einem Verzeichnis skaliert:
Code:
<?php

$images = new Imagick(glob('images/*.JPG'));

foreach($images as $image) {

    // Providing 0 forces thumbnailImage to maintain aspect ratio
    $image->thumbnailImage(1024,0);

}

$images->writeImages();

?>
Quelle: http://de.php.net/manual/de/imagick.examples-1.php
 

bifi

Welscher Taubenapfel
Registriert
05.02.09
Beiträge
774
Dafür muss jedoch ImageMagick installiert sein auf dem Homeserver. Du kannst es auch mit der PHP eigenen Bibliothek machen die bei PHP eigentlich immer dabei ist: gd2

Such mal bei Google nach einer Funktion oder Klasse: PHP Image Resize GD2
Da wirst du garantiert fündig.
 

das_micha

Leipziger Reinette
Registriert
11.03.07
Beiträge
1.795
Dafür muss jedoch ImageMagick installiert sein auf dem Homeserver. Du kannst es auch mit der PHP eigenen Bibliothek machen die bei PHP eigentlich immer dabei ist: gd2

Such mal bei Google nach einer Funktion oder Klasse: PHP Image Resize GD2
Da wirst du garantiert fündig.

so schauts aus. Klassen findet man dafür mittlerweile genügend die recht brauchbare ergebnisse zaubern. und mit leichten basiskenntnissen und etwas mathematischem geschick auch nicht weiter schwer sowas selber zusammenzubraten. schau dir dafür am besten mal imagecopyresample und die notwendigen zwischenschritte an. die parameterliste ist zwar arschlang, aber die doku ist bei php.net recht gut
 

das_micha

Leipziger Reinette
Registriert
11.03.07
Beiträge
1.795
Wobei das in 80% der Fällen installiert ist. ;)

Qualitätsmäßig würde ich immer iMagick der GD vorziehen.


das kann ich so nicht bestätigen. habe hier mehrere Rootserver von Kunden am start und nur auf einem ist es bei der Grundconfig drauf gewesen. aber vieleicht hab ich auch nur die 20% abgegriffen. und in den onclick PHP-Umgebungen wie Xampp oder Mamp ist es auch nicht enthalten.
Dann stellt sich die Frage was er für nen Homeserver hat. Ist es ne Dose muss es noch neu kompiliert werden. also alles in allem bei der "falschen" Umgebung nicht ganz ohne.
Und was gibt es qualitativ an der GD auszusetzen? kann keine nennenswerten Unterschiede hinsichtlich darstellung und dateigröße feststellen.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Ja, bei Rootservern ist das meisten in der Minimalkonfiguration nicht drauf, aber ohne Probleme nachinstallierbar.

Ansonsten ist den Webhostern meistens iMagick vorhanden, weil darauf so viele gängige PHP-Anwendungen zugreifen.
 

das_micha

Leipziger Reinette
Registriert
11.03.07
Beiträge
1.795
Ja, bei Rootservern ist das meisten in der Minimalkonfiguration nicht drauf, aber ohne Probleme nachinstallierbar.

Ansonsten ist den Webhostern meistens iMagick vorhanden, weil darauf so viele gängige PHP-Anwendungen zugreifen.

ok, kann ich nicht beurteilen. mit normalen webpaketen komm ich in der regel nicht aus. da sind die restriktionen einfach zu stark und nix würde mehr richtig laufen. ist ja mittlerweile schon luxus wenn bei günstigen paketen die rewrite mod aktiviert ist ganz zu schweigen von dem depperten safe_mode der mir in meinem Fall passagenweise den Programmierspaß verhagelt;)
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Da man schon für 3-4 Euro mtl. vernünftige vServer bekommt, lasse ich auch die Webpakete links liegen.
 

joro

Braeburn
Registriert
12.06.10
Beiträge
45
Hallo,
mal unabhängig ob nun gd oder imagick genutzt wird, solltest Du darauf achten, dass Du die Thumbs in ein Cache Ordner speicherst, damit die Bilder nicht bei jedem Aufruf der Seite neu konvertiert werden müssen.

Sollte es Dir zu schwer fallen, sowas selber zu programmieren, kann ich folgendes Script empfehlen:
http://phpthumb.sourceforge.net/

Die Bilder würdest Du dann etwa so einbinden:
Code:
<img src="phpThumb.php?src=bildordner/dateiname.jpg&w=200" alt="" />
Das Script ist zwar etwas in die Jahre gekommen, aber es kümmert sich ums Cachen und Du musst nur Deine Schleife programmieren.

Liebe Grüße,
joro