Bilder mit PHP zusammenfügen (Montieren)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abmessung
bekommen
bild
erstellte leere bild
funktion
gesamten wissen
glanz
hintergrund
leeres bild
leisten
machen
problem
rahmen
ressource
ruhig bescheid
spielerei
tollen rahmen
verschiedenen formaten
versuchen
zaubern
-
Hallo alle miteinander
ihr kennt doch sicherlich diese schönen Webradios, die ihre Userbilder mit mehr oder weniger tollen Rahmen fazieren.
Obwohl das spielerei ist, hätte ich ganz gerne so ein script bzw. würde es selbst gerne schreiben... ich weiß nur, dass man imagecreate braucht.... aber ich weiß net, wie man nun 2 oder mehr Bilder, die dann auch noch vom verschiedenen Formaten sind, zusammenfügt... weiß jemand, wie man sowas macht??? Google und Limasuche hab ich bereits benutzt... bei Lima gibts nix passendes und bei google findet man 10000 Verschiedene Möglichkeiten, die ich alle nicht so recht verstehe... bisher hab ich das immer mit Divs gemacht, aber dann kann man keinen Glanz auf die Bilder zaubern, weil viele browser PNG nicht richtig oder garnicht unterstützen...
Gruß
Technofan -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi technofan,
solange ich das Problem richtig verstanden habe (im Prinzip: Zwei Bilder übereinanderlegen), ist die Lösung nicht so kompliziert.
Die Funktion ist vielleicht nicht die professionellste, aber sie scheint ihre Aufgabe zu erfüllen...
function addframetoimg($image_src, $border_src, $outputname = 'userbild mit rahmen drum herum.jpg') {
$src1 = imagecreatefromjpeg($image_src); /* Das Bild, das den Rahmen bekommen soll */
$src2 = imagecreatefrompng($border_src); /* Der Rahmen (PNG mit Alpha-Kanal) */
$dest_x = 90; /* Breite des Ausgabebildes (als Int) */
$dest_y = 130; /* Höhe des Ausgabebildes (als Int) */
$src1_x = imagesx($src1); /* Breite des Bildes */
$src1_y = imagesy($src1); /* Höhe des Bidles */
$src2_x = imagesx($src2); /* Breite des Rahmens */
$src2_y = imagesy($src2); /* Höhe des Rahmens */
/*===Hier wird ein leeres Bild während der Scriptlaufzeit erstellt, das wir gleich befällen werden=*/
/*=*/$destimg = imagecreatetruecolor($dest_x, $dest_y);
/*=================================================================================================*/
/*===Jetzt wird's spannend: Wir Kopieren die beiden Bilder (Hintergrund und Rahmen) nacheinander in das eben erstellte leere Bild=*/
imagecopyresampled($destimg, $src1, 0, 0, 0, 0, $dest_x, $dest_y, $src1_x, $src1_y);
imagecopyresampled($destimg, $src2, 0, 0, 0, 0, $dest_x, $dest_y, $src2_x, $src2_y);
/*================================================================================================================================*/
/* Hier wird das Ergebnis erstellt und als Datei gespeichert */
imagejpeg($destimg, $outputname, 100);
/* Zu guter Letzt lassen wir die Bearbeitungsfläche für unser Bild löschen, um Ressourcen wieder frei zu geben */
imagedestroy($destimg);
}
Der Funktion werden die beiden Bilder übergeben (Hintergrund und Rahmen) und nachdem sie die Abmessungen rausgefunden hat, erstellt sie ein Bild und fügt die Bilder hintereinander ein. Danach wird abgespeichert und ich kann behaupten, dass ich diese Funktion gerade in 5min hingeklatscht habe (als PHP-Anfänger) und sie auf meinem System sehr gut funktioniert. Ok, wenn die Bilder unterschiedliche Größen haben, dürfte sie etwas daneben hauen, aber das Resizen ist ja auch nicht so schwer hin zu bekommen, das schaffst Du schon ;)
Falls noch irgendwelche sind, sag ruhig bescheid, ich werde versuchen, mit meinem gesamten Wissen Unterstützung zu leisten.
LG
Beitrag geändert: 19.12.2008 17:25:29 von one-pc -
Falls noch irgendwelche sind, sag ruhig bescheid, ich werde versuchen, mit meinem gesamten Wissen Unterstützung zu leisten.
Hola, das ging fix
vielen vielen Dank ^^
ja, das mit dem rezize ist kein Problem, das mach ich schon ewig. ^^
Auf dein Angebot mit der Hilfe komme ich schon sehr bald zurück, aber dass du Anfänger bist glaub ich irgendwie nicht so ganz... wo hast du denn PHP gelernt?
LG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage