Dynamische Signatur

d-minded

Mitglied
Normalerweise kursiere ich ja eher im Grafiker-Bereich, heute verschlägts mich aber zu den Codern und zwar aufgrund folgenden Problems:

Ich will:
Eine Signatur für phpBB-Foren, die automatisch den Titel des letzten Eintrages auf meinem WordPress-Blog anzeigt. Kein Datum, kein Geschnörkel, nur den Titel.

Ich habe:
- ein php-file, das mir den letzten Titel ausliest und anzeigt
- google bemüht
- die Foren-Suchfunktion bemüht
- versch. Informatik-Studenten bemüht

Wie vielen vieleicht bekannt ist sind PHP-Scripts in phpBB-Foren nicht erlaubt. Ein "include"-Befehl in phpBB-Format gibt es verständlicherweise auch nicht. Auch bekannt dürfte sein, dass es Möglichkeiten gibt, dynamische Signaturen zu erstellen (so gibt es die berüchtigten X-Fire- oder eMule-Signaturen :rolleyes: ). Diese arbeiten mit der Möglichkeit, die angezeigten Informationen in ein Bild zu kompilieren und dieses Bild dann in die Signatur einzubinden. Meine Idee war also, diese dynamischen Signaturen abzukupfern. Leider lassen die sich nur sehr begrenzt nach meinen Wünschen modifizieren (ein Hoch auf Open-Source), so dass sie mir nicht wirklich helfen konnten.

Meine Frage an euch:
- Seht ihr eine weitere Möglichkeit einer dynamischen Einbindung ohne PHP?
- Kennt ihr Möglichkeiten, ein php-file automatisch in ein Bild zu kompilieren (wenn möglich serverseitig)?

PS: Ich hoffe es gibt keinen Thread der dieses Thema bereits behandelt, weil die Suchfunktion des Forums liefert bei der Suche nach "Signaturen" (natürlich mit diversen Kombinationen) wegen offensichtlicher Gründe keine vernünftigen Resultate ;-)
 
Zuletzt bearbeitet:
Eine Grafik mit einem dynamischen Text zu generieren, ist eigentlich keine große Schwierigkeit, beispielsweise:
PHP:
<?php

	$text = 'Lorem Ipsum';
	$fontSize = 16;
	$fontFile = 'foobar..ttttf';

	$textInfo = imagettfbbox($fontSize, 0, $fontFile, $text);
	$im = imagecreatetruecolor($textInfo[2], $textInfo[3]);
	$colorBlack = imagecolorallocate($im, 0, 0, 0);
	$colorWhite = imagecolorallocate($im, 255, 255, 255);
	imagettftext($im, $fontSize, 0, 0, 0, $colorWhite, $fontFile, $text);

	header('Content-Type: image/png');
	imagepng($im);
	imagedestroy($im);

?>
 
Ich weiss nicht ob ich das ganze richtig verstehe... Bitte korrigiere mich.

PHP:
$text = 'Lorem Ipsum';
$fontSize = 16;
$fontFile = 'foobar.t tf';

Hier werden die Variablen definiert, bis hierhin alles klar. Das Fontfile heisst bei mir einfach arial.t tf und befindet sich im gleichen Ordner wie die PHP-Datei.

PHP:
$textInfo = imagettfbbox($fontSize, 0, $fontFile, $text);
$im = imagecreatetruecolor($textInfo[2], $textInfo[3]);
$colorBlack = imagecolorallocate(0, 0, 0);
$colorWhite = imagecolorallocate(255, 255, 255);
imagettftext($im, $fontSize, 0, 0, 0, $colorWhite, $fontFile, $text);

Hier definierst du die Eigenschaften des Bildes und erstellst es mit der letzten Zeile mit den obigen Variablen.

PHP:
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);

Hier definierst du, das Bild sei eine .png-Datei, spuckst das .png-file aus. Was die letzte Zeile bezweckt, verstehe ich nicht.

Das Resultat verwirrt mich aber noch mehr: Die Grafik "blablabla.php" kann nicht angezeigt werden, weil sie Fehler enthält. Das einzige was ich gemacht habe ist die Schriftart verändert, das File hochgeladen und aufgerufen.

Was habe ich falsch gemacht?

Edit: Binäres Hochladen der Datei ändert nichts... :-(
 
Zuletzt bearbeitet:
Ich habe mir das Beispiel aus dem Ärmel geschüttelt, möglicherweise gibt es Fehlermeldungen, die aufgrund der Klassifizierung „untergehen“. Klassifiziere die Ausgabe mal als Klartext („text/plain“).
 
Ist auf dem Server FreeType verfügbar? Das ist nicht standardmässig bei PHP dabei, aber notwendig, wenn du mit TTF arbeiten willst.
 
@Sven Mintel:
Das ist es nicht. "FreeType Support enabled" spuckt das phpinfo(); aus.

@Gumbo:
Wrong parameter count for imagecolorallocate() in [...].php on line 9

=> es fehlte da der erste Parameter "$im". => korrigiert und er zeigt keine Fehler mehr an
=> wieder als image/png klassifiziert => es kommt ein Bild heraus. Leider sieht es gar nicht wie ein "Lorum Ipsum" aus. ;-)

Ich habe die einzelnen Funktionen nochmals da von wegen Variablen etc. überprüft, aber du scheinst da im Handumdrehen alles richtig gemacht zu haben. Das ganze sieht so aus, als ob der Text an der falschen Stelle steht, aber so wie ich das nachvollzogen habe sind die Pointer an der richtigen Stelle und das Bild ist gross genug.

Edit: Es war doch der Pointer, der an der falschen Stelle war. Fix herumprobiert und das "Lorum Ipsum" steht an der richtigen Stelle. Danke für die Hilfe!
 
Zuletzt bearbeitet:
Zurück