Antworten auf deine Fragen:
Neues Thema erstellen

Dynamische Signaturen erstellen

ddjjmm

Nicht mehr ganz neu hier

Hallo zusammen,

würde gerne für ein kleines Browserspiel eine Seite zur Erstellung von Dynamischen Signaturen machen.

Hab nun folgendes Tutorials gefunden:

Nur funktioniert das ganze irgendwie nicht so :(

Wie lese ich denn meine abgespeicherte sig.php in ein dokument ein, damit es richtig angezeigt wird?

<?php
//DynSig.php -- dynamisch Signatur mit Text erzeugen

Header("Content-type: image/gif");
Bei mir kommt immer "Die Grafik index.php kann nicht richtig angezeigt werden, weil sie Fehler enthält".

<?php
include 'sig.php';
?>
Das ganze soll übrigens so aussehen:
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Signaturen erstellen

Das Tutorial ist schon etwas veraltet, das Prinzip ist aber das gleiche.
Erstens hast du dein Script nicht wirklich fertig geschrieben, sondern nur Schritt 1 ausgeführt. Ganz unten findest du den kompletten Code, aber letztlich brauchst du nur
PHP:
<?php
//DynSig.php -- dynamisch Signatur mit Text erzeugen

    Header("Content-type: image/gif");
    /*
    * hier $zielBild erstellen und mit Inhalten füllen
    */
    ImageGIF ($zielbild) or die("Endbild nicht erzeugt!"); // Bild ausgeben
?>
Erst die letzte Anweisung gibt den Datenstrom aus, den dein Browser dann als gif interpretiert. Um das Script dann zu nutzen, behandle es wie ein normales Bild, welches du in HTML einbinden willst. Bsp.:
HTML:
<img src="sig.php">


Duddle
 

ddjjmm

Nicht mehr ganz neu hier

AW: Dynamische Signaturen erstellen

Okay, hab natürlich den kompletten Quellcode geaddet und nicht nur den Kopf ;)

PHP:
<?php
//DynSig.php -- dynamisch Signatur mit Text erzeugen

    Header("Content-type: image/gif");

    $ausgangsbild = "http://www.psd-tutorials.de/modules/Forum/images/banner.jpg"; // Pfad zum Bild
    $groesse_ausgangsbild = GetImageSize($ausgangsbild);
    $breite_ausgangsbild=$groesse_ausgangsbild[0];
    $hoehe_ausgangsbild=$groesse_ausgangsbild[1];
    
    $ausgangsbild = ImageCreateFromGIF($ausgangsbild);
    if(!$ausgangsbild) // Fehler, falls Bild nicht geöffnet werden konnte
    {
      die("Ausgangsbild konnte nicht geöffnet werden");
    }

    $schriftgroesse=8;
    $x=70; //Startwert für XPosition des Textes
    $y=55; //Startwert für YPosition des Textes
    $text = array("PSD-Tutorials.de Fan",
                  "Meine Hand mag die andere",
                  "samy is my hero");
  
    $ausgabetext=$text[rand(0,sizeof($text)-1)];

    $stringlaenge=strlen($ausgabetext);
    $stringbreite=$stringlaenge*$schriftgroesse+$x;

    if($stringbreite < $breite_ausgangsbild)  //Wenn der Text zu schmal ist, ein Bildbreitenminimum festlegen
    {
      $stringbreite = $breite_ausgangsbild;
    }

    $zielbild = ImageCreate($stringbreite, $hoehe_ausgangsbild) or die("Kein Bild erzeugt!"); // Zielbild erstellen
    ImageColorAllocate($zielbild, 236,233,216); //Hintergrundfarbe festlegen

    $schriftfarbe = ImageColorAllocate($zielbild, 19, 51,130);
    imagettftext($zielbild,$schriftgroesse*72/96,0,$x,$y,-1*$schriftfarbe,"schriftart.ttf",$ausgabetext);
  
    ImageCopyMerge($zielbild,$ausgangsbild,0,0,0,0,$breite_ausgangsbild,$hoehe_ausgangsbild,100);

    $transparent=ImageColorAllocate ($zielbild, 236,233,216);
    ImageColorTransparent($zielbild,$transparent);

    ImageGIF ($zielbild) or die("Endbild nicht erzeugt!"); // Bild ausgeben
    Imagedestroy ($zielbild); // make me scream "yeah"
?>
Hab den Beispielcode mal probiert, das Bild (background bild ist natürlich richtig abgespeichert und funzt) wird jedoch nur als kleines ungeladenes kästchen angezeigt
 

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Signaturen erstellen

Ich rate jetzt mal: du lädst ein .jpg in die imagecreatefromgif()-Methode, mglw. kommt er da durcheinander.

Ansonsten, wie gesagt, das Beispiel ist veraltet, imagecreatefromgif() wird in neueren GD-Lib-Versionen nicht mehr unterstützt. Vielleicht ist das der Fehler.


Duddle
 

ddjjmm

Nicht mehr ganz neu hier

AW: Dynamische Signaturen erstellen

Korrekt, hatte ein jpg eingelesen, mein Fehler :)

Habs nun auf gif geändert. Funzt immer noch nicht.

D.h. ich muss die eingabe umgehen mit neueren methoden?
will die daten aus formulareingaben auslesen und verwerten lassen
 

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Signaturen erstellen

In den Kommentaren von PHP: imagecreatefromgif - Manual gibt es ein paar Workarounds. Ansonsten kannst du es mit einem .png versuchen, falls du Transparenzen brauchst. Ansonsten nimm einfach ein .jpg. Nur für .gif ist die entsprechende ..createfrom..-Funktion veraltet, wenn ich das richtig gelesen habe.


Duddle
 

ddjjmm

Nicht mehr ganz neu hier

AW: Dynamische Signaturen erstellen

Sodele ich hab mich mal ein bischen daran probiert und das Grundgerüst funktioniert auf jeden Fall mit den vordefinierten Variablen:

Index.php
PHP:
<img src="sig.php">
sig.php
PHP:
<?php
//DynSig.php -- dynamisch Signatur mit Text erzeugen

    Header("Cache-Control: no-cache");
    Header("Content-type: image/png");

    $ausgangsbild = "banner.jpg"; // Pfad zum Bild
    $zielbild = ImageCreateFromJPEG($ausgangsbild);
    $color = ImageColorAllocate ($zielbild, 255, 0, 0);
    
    //( Bild, Schriftart 1-5, Abstand in Pixel auf der x-Achse, Abstand in Pixel auf der y-Achse, Text der geschrieben werden soll, Farbe)
    ImageString($zielbild, 5, 100, 20, "Text1: ", $rot);
    ImageString($zielbild, 5, 100, 40, "Text2: ", $rot);
    Imagestring($zielbild, 5, 100, 60, "Text3: ", $rot);  

    ImagePNG ($zielbild) or die("Endbild nicht erzeugt!"); // Bild ausgeben
    Imagedestroy ($zielbild);
?>
Nun will ich natürlich die Eingabe variablen via Formularfelder gestalten, woran es noch scheitert. Ich kann die Variablen irgendwie nicht gescheit übergeben.

Hab z.B. eine var.php und eine vartest.php. Bei der zweiteren datei möchte ich aus var.php eine variable auslesen.

Afaik muss ich include ("var.php"); machen und dann kann ich einfach mit $text darauf zugreifen? Beim einfachen test hat es funktioniert, aber wenn ich in meiner o.g. sig.php eine auf $text zugreifen will, dann erstellt er das bild einfach nicht. Was mache ich da denn falsch? :(
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Signaturen erstellen

Funktioniert bei mir wunderbar.
var.php:
PHP:
<?php
$foobar = "Hello, World!";
?>
varinclude.php
PHP:
<?php
include("var.php");
echo $foobar;
?>

Ich habe auch noch nie von einer Option gehört, die das ausschalten würde. Ich schätze also, du machst irgendwas spezifisch falsch, aber ohne mehr Code ist es nicht zu beurteilen.


Duddle
 

ddjjmm

Nicht mehr ganz neu hier

AW: Dynamische Signaturen erstellen

Doch doch, bei meinen testdateien funzt es auch.

Wenn ich es quasi LIVE machen will, dann jedoch nicht:

var.php
PHP:
<?php
    $text = "bla";
  ?>
sig.php
PHP:
 <?php
//DynSig.php -- dynamisch Signatur mit Text erzeugen

    Header("Cache-Control: no-cache");
    Header("Content-type: image/png");

    $ausgangsbild = "banner.jpg"; // Pfad zum Bild
    $zielbild = ImageCreateFromJPEG($ausgangsbild);
    $color = ImageColorAllocate ($zielbild, 255, 0, 0);

    include("var.php");  <---------------------
    
    //( Bild, Schriftart 1-5, Abstand in Pixel auf der x-Achse, Abstand in Pixel auf der y-Achse, Text der geschrieben werden soll, Farbe)
    ImageString($zielbild, 5, 100, 20, $text, $rot);  <---------------
    ImageString($zielbild, 5, 100, 40, "Text2: ", $rot);
    Imagestring($zielbild, 5, 100, 60, "Text3: ", $rot);  

    ImagePNG ($zielbild) or die("Endbild nicht erzeugt!"); // Bild ausgeben
    Imagedestroy ($zielbild);
?>
Hab die eingefügten stellen mit einem Pfeil markiert. Weiss nicht wieso er es mit der Variable nicht nimmt? :schmoll:
 

Duddle

Posting-Frequenz: 14µHz

AW: Dynamische Signaturen erstellen

Auch das funktioniert bei mir problemlos.

Vielleicht kannst du mal ein error_reporting(E_ALL); vor die erste header()-Funktion schreiben (und die header()-Zeilen auskommentieren, damit du mögliche Fehlermeldungen sehen kannst).

Wie genau testest du, ob das funktioniert? Rufst du sig.php im Browser auf, oder bindest du es irgendwo als <img src="sig.php"> ein? Wenn letzteres, probier ersteres. In deinem kopierten Codeblock ist ganz am Anfang ein Leerzeichen - falls das auch in der Datei so ist, wirst du ein "cannot modify headers" bekommen.


Duddle
 
AW: Dynamische Signaturen erstellen

Hallo,

warum machst Du nicht einfach gleich ein statt des
PHP:
include ("var.php");
und übergibst den $text von dort? Sorry, falls ich was falsch verstanden haben sollte.

Gruß Andreas
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.615
Beiträge
1.538.352
Mitglieder
67.527
Neuestes Mitglied
Christian Eidelloth
Oben