Hallo!
Eine Klasse kann ich Dir nicht nennen..... möglicherweise findest Du ja irgendwas bei den Tutorials.
Aber auch hier im PHP-Forum gibt es zahlreiche Themen zu Thumbnails.
Wo genau ist denn Dein Problem?
Wir ermitteln erstmal die Ausmasse des Quellbildes (z.B. mit getimagesize() ).
Als Beispiel nehmen wir mal 700px Höhe (X) und 500px Breite (Y).
Die Werte für die Höhe und Breite vergleichen wir miteinander und können so feststellen ob das Bild im Hoch- oder Querformat ist.
Ist X grösser als Y (if)?
Ist X kleiner als Y (elseif)?
Beides trifft nicht zu? Dann sind X und Y also gleichgross (else), dann spielt es auch keine Rolle ob wir X durch Y oder Y durch X teilen.
Da in unserem Beispiel X grösser als Y ist, ist das Bild im Hochformat.
Den grösseren Wert (X) teilen wir also durch den kleineren Wert (Y) und bekommen so den Ratiowert (in diesem Fall 1.4).
Nun brauchen wir noch ein Maximalformat (z.B. 200px).
In unserem Beispiel wird das Bild also 200px hoch.
Aber wie breit wirde es?
Wir erinnern uns --> Ratiowert.
Also müssen wir 200px durch 1.4 teilen und haben die neue Breite --> 142.85714px.
Da es keine "angebrochenen" Pixel gibt
, muss die neue Breite natürlich gerundet werden:
Als Ergebnis bekommen wir einen gerundeten Wert von 143px.
Eine minimale (mit dem Auge nicht wahrnehmbare) "Verzerrung" muss also in kauf genommen werden.
Soviel zu den Proportionen.
Zum Thema Thumbnails erstellen im allgemeinen findest Du hier genug Beiträge.
Es sollte also kein sonderliches Problem darstellen etwas selber zusammen zu basteln.
Gruss Dr Dau