Bilder ohne Streckung skalieren

Hey!

Ich weiß noch nicht, wie ich das ganze angehen soll:
Auf der Website gibt es eine Bilder Galerie (jQuery Plugin). Diese stellt die Bilder immer in einer festen Größe dar.
Es gibt die Thumbnails (90 x 67) und das große Bild (500 x 375).

Gibt es ein fertiges PHP Snippet, dass mir die Bilder skalieren kann?

Ein Beispiel:
Das zu skalierende Bild hat die Maße 50 x 100.
Die Höhe müsste er jetzt für die Thumbnails auf 67px anpassen.
Das Script sollte jetzt nicht das Bild auf 90px verbreitern sondern theoretisch links und rechts jeweils 20px transparenten (oder auch weißen oder schwarzen) Rand hinzufügen, sodass das Bild nicht verzerrt wird.
Bei großen Bild im Prinzip das gleiche.

Wie sieht das aus mit der Performance? Kann man nicht eventuell sogar eine Art Cache Verzeichnis für die generierten Bilder erstellen? Ich meine, dass das bei Magento ähnlich gelöst ist.

Ich hoffe, man konnte mir folgen :smile:

Danke und Gruß
Christoph

Hi!
Hab heut abend keine Zeit mehr es dir ordentlich zu schreiben… Ich mache es immer so, dass die Thumbnails in einen eigenen Cacheordner gespeichert werden.
$pic ist hier der Bildname :wink:.
$folder entsprechend der Pfad.

$infos = getimagesize($folder.’/’.$pic); //ursprungsbildgröße
$imgA = imagecreatefromjpeg($folder.’/’.$pic); //ursprungsbild
$imgB = imagecreatetruecolor(100,100); //neues bild (bei dir warns andere maße hab ich grad nich mehr im kopf)
imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, 100, 100, $infos[0], $infos[1]); //hier muss jetz alles nach deinen belieben geändert werden.
imagejpeg($imgB, $folder.’/thumbnails/’.$pic);

http://de2.php.net/manual/de/function.imagecopyresam…

du wirst jetzt berechnen müssen welche seite länger ist, dann wie viel du das ganze bild verkleinern musst und zu guter letzt mit der x-und y-koordinate an die richtige stelle des kleinen bildes schieben. alles mit durchlesen des Links oben machbar :wink: falls du noch mehr hilfe brauchst schreib mir ne mail dann schau ichs mir morgen nach der arbeit nochmal genauer an.

Ah, sehr schön!
Hey!

Danke für die Antwort! Das sieht schon mal sehr hilfreich aus!
Ich habe aktuell wenig Zeit für diese Sache aber bei Gelegenheit werd ich mir das alles mal genauer ansehen.

Danke nochmal und
Gruß Christoph