Wie erstellt man eine smiley-generator

Naja, man legt in einer Datenbank die Pfade zu den Smilie-Rohlinge ab, zusätzlich ein paar Informationen wie die Koordinaten der zu beschreibenden Area. Dann erstellt man ein passendes Formular, in dem die Auswahl des Smilies, der Schriftart und Schriftgrösse u.s.w. stattfindet. Die Daten werden an ein Script gesendet, welches den Smilie öffnet, mit der GB-Libary manipuliert (Text hinzufügen) und es dann speichert/ausgibt/versendet.
Wenn du ein fertiges Script suchst kannst du ja mal auf den einschlägig bekannten Seiten suchen, wie hotscripts.com.

Johannes
 
Original geschrieben von Johannes Röttger
Naja, man legt in einer Datenbank die Pfade zu den Smilie-Rohlinge ab, zusätzlich ein paar Informationen wie die Koordinaten der zu beschreibenden Area. Dann erstellt man ein passendes Formular, in dem die Auswahl des Smilies, der Schriftart und Schriftgrösse u.s.w. stattfindet. Die Daten werden an ein Script gesendet, welches den Smilie öffnet, mit der GB-Libary manipuliert (Text hinzufügen) und es dann speichert/ausgibt/versendet.
Wenn du ein fertiges Script suchst kannst du ja mal auf den einschlägig bekannten Seiten suchen, wie hotscripts.com.

Johannes

Hi

und nen großes Lob für eure Seite.

Zu meinem Problem:

Ich bin in Sachen php ein absoluter Newbie und suche nun schon seit Tagen Informationen zum erstellen solch eines "Smiliegenerators".
Allerdings erfolglos. :(
Was Johannes Röttger zu diesem Thema geschrieben hat klingt ja recht logisch aber wie das im einzelnen zu bewerkstelligen ist,ist mir total schleierhaft.
Wenn also jemand mal Lust dazu hat darauf näher einzugehen würde mir das vielleicht etwas weiterhelfen.

Besten Dank im voraus.

MfG
Justin
 
AAaaaaalso:
Ich bin ja ein fan von open source, kannst mal mein Smileyscript haben, die Kommentare sind recht einleuchtend, bitte sehr:
PHP:
/*
*Unit zur Erstellung von Smilies, die beschriftete Schilder in der Hand halten.
*Smilievorlagen: www.smileymania.de , rest: GD-Lib (Schild: filledRectangle)
*Robert Lindner - 22.12.03 t = 2:20 - 4:00
*/

function schild($text,$bild)
{
//Zeilenweises auslesen:
$t = wordwrap($text,20,"\n");
$t = explode("\n",$t);

//längste Zeile bestimmen
foreach($t as $tx)
{
$len[] = strlen($tx);
}
$l = max($len); //l = längste Zeile

$f = 3;

$tb = $l * imagefontwidth($f) + 12; //tb - Breite des Tabs, 12 px Pufferzone
$th = count($t)*imagefontheight($f)+10; //th - höhe des Tabs,10 px Pufferzone

$org = imagecreatefrompng("smile/". $bild . ".png"); //Einlesen der Vorlage
/* Einlesen der Breite und Höhe der Vorlage */
$ow = imagesx($org);
$oh = imagesy($org);

/* Outputbild mit den Maßen tb*(th+oh) */
$im = imagecreate($tb,$th+$oh);
$bg = imagecolorallocate($im,245,252,255);
$schwarz = imagecolorallocate($im,0,0,0);
$weiss = imagecolorallocate($im,255,255,255);
imagefill($im,0,0,$bg);
imagecolortransparent($im,$bg);

imagerectangle($im,0,0,$tb-1,$th,$schwarz); //Rahmen, 1px
imagefilledrectangle($im,1,1,$tb-2,$th-1,$weiss); //Fläche im Rahmen weiss füllen

imagecopy($im,$org,$tb/2-$ow/2,$th,0,0,$ow,$oh);//kopiere 0+ow,0+oh der Vorlage nach im an Tab/2-Vorlage/2,höhe des Tabs.

foreach($t as $say)
{
imagestring($im,$f,5,$i*imagefontheight(f)*ceil(6/count($t)),$say,$schwarz);
$i++;
}

$nr = rand(1,15);
imagepng($im,"smile/{$nr}.png");
return "<img src=smile/{$nr}.png border=0>";
}

Also: Nicht kommentiert: das Ende:
ich generiere mit Rand einfach Zahlen von 1-15, das dient einfach dessen,dass ich, wenn mir langweilig ist, die letzten 15 Smileys anschauen kann, die auf dem Server generiert wurden.

Das Schild wird einfach ein weiß gefülltes Viereck, der "Schildträger" in diesem Fall $org ist einfach ein Smiley,das ein Schild hält, die Stange muss dabei an den oberen Rand des Bildes grenzen.
Einige Smileyvorlagen gibt es bei http://www.smileymania.de (am smileycreator)
 
Zuletzt bearbeitet:
Zurück