Bild verkleinern und Thumbnail erstellen

Angeleno

Grünschnabel
Hallo Community,

ich habe leider bisher nichts passendes zu meinem Problem gefunden und wende mich daher an euch.

Ich habe ein Script geschrieben, welches mir ein hochgeladenes Bild verkleinert. Funktioniert auch alles hervorragend, jedoch möchte ich, dass in weiterer Folge noch ein Thumbnail der Größe 50 x 50 px erstellt wird, und genau da liegt der Hund begraben.

Mein bisheriger Code:
Code:
$image = "user/".$_FILES['bild']['name'];
ini_set('mssql.textsize',2147483647);
ini_set('mssql.textlimit',2147483647);
/*header("Content-Type: image/jpeg"); */
$size = getimagesize($image);
$im = imagecreatefromjpeg($image);
$percent = 200 / imagesx($im);
$width = $size[0];
$height = $size[1];
$zwidth = 200;
$zheight = imagesy($im) * $percent;
$im2 = imagecreatetruecolor($zwidth, $zheight);
imagecopyresampled($im2, $im, 0, 0, 0, 0, $zwidth, $zheight, $width, $height);  
imagepng($im2, 'user/klein/'.$bild);
imagedestroy($im2);
error_reporting(E_ALL);

Könnt ihr mir bitte helfen und sagen was ich noch ergänzen muss, damit zusätzlich ein Thumb erstellt wird!?

Danke im vorraus!
 
Kommen irgendwelche Fehlermeldungen? Warum steht das error_reporting() am Ende und nicht am Anfang? Du schreibst, das du gern 50x50 hättest, hantierst aber mit 200 Pixelangaben.

Was ist das aktuelle Resultat? Eine Fehlerbeschreibung "da liegt der Hund begraben" ist keineswegs hilfreich für eine Fehleranalyse.
 
OK, das error reporting() am Ende kannst du streichen ;)
Fehlermeldung kommt keine, da mein geposteter Code ja funktioniert. Das hochgeladene Bild wird auf eine Breite von 200px verkleinert.

Nun soll zusätzlich ein Thumbnail erstellt werden, jedoch hab ich dazu leider keinen Lösungsansatz. Soll ich den gleichen Code mit den neuen Daten schreiben, oder einfach das aktuelle Script erweitern?

Ist klar was ich meine?
 
Tatsächlich hat die gdlib keine allzu guten Resizingalgorithmen. Das Bild kommt nicht mehr sonderlich scharf raus. Du solltest mal ausprobieren, ob Du die erstellte 200px-Version zum weiteren Verkleinern nimmst oder doch wieder mit der Originaldatei arbeitest.

(Man kann das Bild nachschärfen, nicht die schönste Methode, aber besser, als es unscharf zu lassen)
http://sethrubenstein.me/post/5897782878/via-sharpen-images-with-php-gd-some-code-from
http://adamhopkinson.co.uk/blog/2010/08/26/sharpen-an-image-using-php-and-gd/

mfg chmee
 
Alles klar, danke.

Jetzt aber noch eine Frage:
Wenn ich nun einen speziellen Bildausschnitt nehmen möchte, dann funktioniert das ja soviel ich weiß über imagecopyresampled. Wie sag ich php jetzt, dass ich ungefähr die mitte des Bildes als Thumb herausnehmen möchte, ohne einen schwarzen Rand zu erhalten?
 
:) Mathematik. Beispiel Querformat:

Wir gehen beim Querformat davon aus, dass wir die volle Höhe benutzen und die Seiten beschneiden. Wir berechnen den überstehenden Bereich.

Überschuss = Bildbreite - Bildhöhe

Der Überschuss betrifft rechts und links des Bildes. Also ist wohl der Anfangspunkt des Beschnitts bei

Xanfang = floor( Überschuss/2 )

floor(), damit es eine Ganzzahl ist. Damit hätten wir wohl alle Daten zusammen.

Xanfang = floor( Überschuss/2 )
Yanfang = 0
Xbreite = Bildhöhe
Ybreite = Bildhöhe

Beschnitt.jpg

(Nach php umsetzen ist Deine Aufgabe :)) mfg chmee
 
Zuletzt bearbeitet:
Zurück