thumbnail grössenanpassung?

clark kent bs

Grünschnabel
Hallo allerseits

Habe dieses tolle script aus diesem Forum:

http://www.tutorials.de/forum/php-codeschnipsel/244062-thumbnails-mit-php-erstellen-lassen.html

nun habe ich ein problem, das die grössen nicht richtig angepasst werden. Konkretes Beispiel:

Ich rufe die Datei mit

PHP:
<img src=\"thumbnail.php?src=image.jpg&p=100&w=140&h=240\" />

das originalbild hat die werte: breite = 358, hoehe = 505 (pixel).
nun möchte ich, das dass bild skaliert wird nach den bedingungen maximale breite = 140, maximale hoehe = 240, proportional!
somit müsste das bild neu 140 breit sein und 197 hoch, da die breite ausschlaggebend ist.
(wenn nach der hoehe 240 skaliert würde, dann wäre die breite zu gross, nämlich 170).

das script jedoch macht mir breite = 140, hoehe = 240, fixe grösse. nicht proportional. hat jemand eine ahnung warum?

vielen dank im voraus für eure hilfe

gruss
clark kent
 
Wieso machst du das einfach nicht so:


<img src="thumbnail.php?src=image.jpg&p=100" width="140" height="240" />
 
Hi

Danke für deine Antwort. Leider ist das jedoch nicht die Lösung.

Die Thumbnails werden on-the-fly erzeugt. Das Originalbild ist jeweils ein anderes. Das Script speichert danach den fertigen, verkleinerten Thumbnail ab.....
 
Hallo, hab's jetzt (denke ich mal...) gelöst!

Ich gebe dem scipt neu zwei andere werte mit: px und py.
px ist immer die maximal zugelassene breite, py ist immer die maximal zugelassene höhe.

zB:

PHP-Code:
<img src="thumb.php?src=$file_name&px=140&py=240\">

und im script steht neu:

PHP:
$new_height = ceil(($_GET['px'] / $width) * $height);             
        $new_width = intval($_GET['px']);  
        if ($new_height > intval($_GET['py'])) { 
            $new_width  = ceil(($_GET['py'] / $height) * $width);             
            $new_height = intval($_GET['py']); 
            }

mit dem ursprünglichen script ist dies nicht möglich. stell dir vor, das zu erzeugende thumbnail muss in einen rahmen. der rahmen ist 140x240 gross. also darf X nie grösser als 140 sein und Y nie grösser als 240. Und es soll jedesmal die grösstmögliche variante gewählt werden (entweder x=140 oder Y=240)

Vielleicht kann das jemand gebrauchen....und evtl. erweitert ja FORSTERM sein super-script sogar...!

Greets
Clark Kent
 
Zurück