Bild verkleinern und ausgeben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angabe
ausgabe
befehl
bild
break
browser
code
eifer
einbinden
einzelnen parameters
fragezeichen
gefecht
image
konvertierung
mime
originalbild
proportion
tag
url
verkleinern
-
Hi
ich habe zwar schon viele Artikel zu dem Thema 'tag/bild">Bild mit php verkleinern' gefunden, auch zu 'Bild ausgeben' aber ich konnte das nicht wirklich verwenden.
Ich würde gerne einem Script per GET den Pfad für ein Bild übergeben. Das Script soll nun das bild (jpg) verkleinern (Breite max 180px).
Allerdings soll dabei der Qualitätsverlust nicht allzuhoch sein, weil das Originalbild hat eine Größe von ca 2500px.
Die Proportionen sollen natürlich auch gleich bleiben.
Einbinden möchte ich das Script in einen imagetag, also
<img src="imgkonv.php?src=bilder/bild3.png" />
Ich hoffe ihr könnt mir weiterhelfen.
MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du kannst entweder ein Thumbnail des Bildes mittels PHP erstellen, oder das Bild durch Angabe eines Wertes (Höhe ODER Breite) mittels img-Tag einbinden. Durch Angabe eines einzelnen Parameters wird das Bild dann propotional verkleinert:
<img src="imgkonv.php?src=bilder/bild3.png" width="180" />
Bilder sollten aber nie mittels img-Tag verkleinert werden. Dann eher das Bild in ein Thumbnail konvertieren. -
Ja, denn bei der Konvertierung via img tag war das Bild sehr sehr unscharf. DAher wollte ich es ja vorher per php verkleinern. Aber wie genau mache ich das? Auf php.net habe ich nur einen Haufen Befehle gefunden, aber ich habe keine Ahnung wie ich diese richtig zusammensetze, was ich angeben muss & so weiter. Vorallem weiss ich nochnichtmal welche Befehle ich nun genau für mein Vorhaben brauche. Bin leider gerade etwas überfordert.
MFG & vielen Dank -
imgkonv.php:
<?php header("Content-type: image/png"); $path = 'bilder'; $img = $path . '/' . $_GET['src']; if (@file_exists($img)) { $percent = $_GET['percent']; $w = $_GET['w']; $h = $_GET['h']; } else { $img = $path . '/notfound.jpg'; $percent = 100; } $x = @getimagesize($img); $sw = $x[0]; $sh = $x[1]; if ($percent > 0) { $percent = $percent * 0.01; $w = $sw * $percent; $h = $sh * $percent; } else { if (isset($w) and !isset($h)) { $h = (100 / ($sw / $w)) * .01; $h = @round($sh * $h); } elseif (isset($h) and !isset($w)) { $w = (100 / ($sh / $h)) * .01; $w = @round($sw * $w); } } switch($x["mime"]) { case "image/jpeg": $im = @imagecreatefromjpeg($img); break; case "image/gif": $im = @imagecreatefromgif($img); break; case "image/png": $im = @imagecreatefrompng($img); break; default: $im = false; break; } if($im) { $thumb = @imagecreatetruecolor($w, $h); @imagecopyresampled($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh); @imagepng($thumb); } ?>
Folgende Einbindung(en) sind möglich:
<img src="imgkonv.php?src=bild3.png?w=180" /> <img src="imgkonv.php?src=bild3.png?h=180" /> <img src="imgkonv.php?src=bild3.png?h=100&w=200" /> <img src="imgkonv.php?src=bild3.png?percent=50" />
Zur Erklärung:
1. Bild propotional auf maximal 180px Breite verändern
2. Bild propotional auf maximal 180px Höhe verändern
3. Bild auf maximal 100px Breite und 200px Breite verändern
4. Bild prozentual auf 50% der Originalgröße verändern
Das Bild wird automatisch aus dem Ordner "bilder" gelesen. Ist es nicht vorhanden, wird alternativ das Bild "notfound.jpg" angezeigt (Sollte also vorhanden sein).
Beitrag zuletzt geändert: 25.4.2011 19:08:05 von fabo -
Super! Vielen Dank.
Läuft perfekt und die Qualität ist auch wie ich es mir gewünscht habe deutlich besser als durch Verkleinern vom Browser.
Nur in der URL hast du versehentlich 2 Fragezeichen. Wenn man das 2. nicht auch durch ein & ersetzt dann bekommt man als Ausgabe nur die URL :)
MFG und nochmal herzlichen Dank für die Mühen
-
buddix schrieb:
Super! Vielen Dank.
Läuft perfekt und die Qualität ist auch wie ich es mir gewünscht habe deutlich besser als durch Verkleinern vom Browser.
Nur in der URL hast du versehentlich 2 Fragezeichen. Wenn man das 2. nicht auch durch ein & ersetzt dann bekommt man als Ausgabe nur die URL :)
MFG und nochmal herzlichen Dank für die Mühen
Recht hast du. Nennen wir es Eifer des Gefechts ;) Frohe Ostern noch. -
Klar, passiert mir auch des Öfteren. Ich wollte es auch nur erwähnen, falls jemand anderes das gleiche Problem hat und dann enttäuscht denkt, es würde nicht klappen :)
Dankeschön und dir auch :)
MFG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage