Du bist nicht angemeldet.

  • Anmelden
  • Registrieren

Lieber Besucher, herzlich willkommen bei: SFDE. Falls dies dein erster Besuch auf dieser Seite ist, lese dir bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.

NoX

Anfänger

Beiträge: 18

1

12.08.2005, 17:20

[PHP]Text im Bild

Wie kann ich einen Text in ein Bild schreiben und dieses dann ausgeben?

Ihr habt bestimmt schon Bilder gesehen, welche einen dynamischen Text enthalten. Dies könnte das aktuelle Datum, ein lustiger Spruch, die IP des Users oder irgendwas anderes sein. Ich will euch nun zeigen, wie ihr auf ein Png Bild einen Text schreibt und diesen ausgebt. Erstellt einen kleinen Button, bspw. 88x31 Pixel groß im PNG-Format und speichert ihn in einem Verzeichnis ab. Nun schreibt folgenden Code in eine Datei und speichert sie ins gleiche Verzeichnis:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
<?php
 $image_file='button_rohling.png';
 $image=imagecreatefrompng($image_file);
 $textcolor=imagecolorallocate($image,0,0,0);
 $text='Hello world!';
 imagestring($image,2,4,16,$text,$textcolor);
 header("Content-Type: image/png");
 imagepng($image);
 imagedestroy($image);
?>


Nun erstmal zur Erklärung, warum ich PNG als Format genommen habe. Erstens beinhaltet das PNG Format die Vorteile aus JPEG und GIF. Die Bilder können wie in JPEG komprimiert werden, der Qualitätsverlust bleibt jedoch aus, oder ist nur sehr gering. Außerdem beseht die Möglichkeit Transparenz in das Bild zu bringen, wie bei GIF. Das GIF Format bedarf einer Lizenz und wurde daher aus der GD-Bibliothek, welche wir für das Erstellen und Bearbeiten von Bildern brauchen , herausgenommen. Ab Version 1.6 wurde das GIF Format durch PNG ersetzt. Habt ihr eine Bibliothek unter Version 1.6, so könnt ihr auch das GIF Format noch nutzen. Die Befehle bleiben auch bei den anderen Formaten im Grunde gleich, nur ein paar Kleinigkeiten ändern sich. Jetzt die Erklärung des Codes:

In der Variable "$image_file" geben wir den Dateinamen unseres Bildes an (musst du an deinen anpassen). Dann wird mit "imagecreatefrompng" ein neues Bild von dem bestehenden PNG erstellt und ein Zeiger darauf in "$image" gespeichert. Dem Befehl übergeben wir den Dateinamen des Bildes, den wir in einer Variable gespeichert haben. Nun erstellen wir eine Variable "$textcolor" und weisen mit "imagecolorallocate" die Farbe "Schwarz" zu. Der Befehl erfordert als ersten Parameter das Image, danach drei Byte Werte (Rot, Grün, Blau, jeweils von 0 bis 255). In der Variable "$text" speichern wir nun unseren Text, den wir auf das Bild packen wollen. Mit "imagestring" schreiben wir den Text auf unser Bild. Der erste Parameter ist wieder das Image, auf welches geschrieben werden soll. Der zweite gibt die Schriftgröße an. Mit dem dritten und vierten wird die Position in Pixeln angegeben. Die obere link Ecke des Bildes stellt hierbei den Punkt (0|0) da. Nun senden wir einen Header, damit der Browser auch weiß, dass diese PHP Datei keinen HTML Code, sondern ein Bild von Typ PNG ausliefert. Dann wird das Bild mit "imagepng" ausgegeben. Der erste Parameter gibt wieder das Bild an. Ihr könntet mit Komma getrennt noch einen zweiten Parameter, einen Dateinamen als String angeben. Dann würde das Bild nicht ausgegeben, sondern als Bild unter diesem Dateinamen gespeichert werden. Zum Schluss geben wir den durch das Bild belegten Speicher mit "imagedestroy" wieder frei.

Die PHP Datei ist nun wie ein Bild zu gebrauchen. Wenn ihr die Datei bspw. "bild.php" genannt habt, könnt ihr sie so in euer Dokument einfügen:

Quellcode

1
<img src="bild.php" alt="" />


Den Text könnt ihr nun auch durch andere Informationen, bspw. auch aus einer Datenbank, ersetzen.


Quelle: Klick hier

GnaTOnLine

Anfänger

Beiträge: 1

2

08.02.2006, 17:03

Sers an alle,

wollte mal fragen wie ich das machen klann das der text nicht nur in eine Zeile geht sondern auch in die nächste.

Okuro

unregistriert

3

05.05.2010, 16:51

Text Formatierung in Bildern

Hi!

Danke für die (wenn auch schon alte) Info! Sie hat mir sehr weitergeholfen.
Ich würd jetzt nur gerne wissen, wie ich andere Text-Eigenschaften wie z.B. Schatten, Schriftart etc. einstellen kann...

anfänger

unregistriert

4

31.03.2012, 20:33

TEXT= aus Datenbank

Hallo,

ich bin neu und möchte anstatt eines statischen Textes, einen aus der Datenbank ausgeben lassen.

im normalfall funktioniert das so (laut internet und probieren)

PHP-Quelltext

1
2
3
4
5
6
7
8
9
$verbindung mysql_connect("localhost""root""");
    $datenbank mysql_select_db("demo");
    
    $abfrage "SELECT * FROM test";
    $resultat mysql_query($abfrage);

while($daten mysql_fetch_object ($resultat)){
        echo "$daten->text"."<br />";
    }

UND WAS MUSS HIER NUN REIN?

PHP-Quelltext

1
2
3
4
5
6
7
8
$image_file='img/buchung1.png';
 $image=imagecreatefrompng($image_file);
 $textcolor=imagecolorallocate($image,0,0,0);
 $text"WAS MUSS HIER STEHEN?"
 imagestring($image,10,488,230,$text,$textcolor);
 header("Content-Type: image/png");
 imagepng($image);
 imagedestroy($image);


Vielen Dank für eure Hilfe :)

Thema bewerten