Bild mit Text belegen durch Eingabefeld

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bild mit Text belegen durch Eingabefeld

    Hi Leutz,

    ich hab ein Problem mit der Darstellung eines Bildes, welches ich mithilfe der gdlib erstelle.

    Ich möchte gerne einen Text in ein Textfeld eingeben und darunter soll dann das Bild, mit dem oben eingegebenden Text erscheinen.

    Quasi so:

    <Texteingeben>
    <Submitklicken>

    <Bilderstellenmittext>

    Das Bild erstelle ich so:
    PHP-Code:
    <?php
     

    header
    ('Content-type: image/png');

    $image = @imagecreate(150100);

    imagecolorallocate($image250250200);

    $text_color imagecolorallocate($image051102);

    imagestring($image255'$inputtext'$text_color);

    imagepng($image);
     
    ?>
    Das geht aber leider nicht. Ich erhalte nur die Fehlermeldung, dasss der HTML Header schon gesendet wurde.

    mfg
    silas

  • #2
    Das ist so ein Problem mit Header. Verändere mit dem Formular einfach die URL des Bildes.


    <img src="bild.php" alt="bla"> --> <img src="bild.php?string=Ich%bin&die%Schrift%auf%dem%Bild" alt="bla">

    Das Bild hast du dann in einer seperaten php-Datei.
    Um Probleme zu vermeiden würde ich den String erst urlencoden, dann mit _GET in der anderen Datei abrufen und dann wieder urldecoden benutzen.

    Kommentar


    • #3
      Danke für die Antwort!

      Nur wie übergebe ich den den Inhalt, der im Textfeld steht dann an :
      <img src="bild.php?string="InhaltdesTextfeldes" alt="bla">


      EDIT : Alles soll auf einer Seite stattfinden! Die Eingabe und dann das Abschucken und dadurch die Aktualisierung des Bildes.


      So siehts nun aus:

      PHP-Code:
      <form action="vorschau.php" method="get">
      <
      input type="text" name="text" value="Ihr Text">
      <
      br>


      <
      img src="vorschau.php?text" alt="bla">
      <
      br>
      <
      input type="submit" name="submit"
      Klick ich auf Submit wird mir das bild mit dem im Texfeld eingegebendem Text angezeigt. Natürlci hauf einer neuen Seite, der vorschau.php - Ich will das ja aber auf einer seite machen

      Wie mach ich das
      Zuletzt geändert von silas; 14.07.2006, 10:14.

      Kommentar


      • #4
        Das Bild musst du auf einer anderen Seite machen.

        sonst aber gehts z.B. so:
        PHP-Code:
        <?
        echo "<form action='?action=makepic' method='post'>
        <input type='text' name='text' value='Ihr Text'>
        <br>";

        if(isset($_GET['action'])){
         $action = $_GET['action'];
         if($action=="makepic"){
          if(isset($_POST['text'])){$text = $_POST['text'];}else{$text = "Dein Text";}
          /* hier kannst du je nachdem wie du in bild.php den Text abfrägst
            <img src='bild.php?text=".$text."' alt='bla'>
            verwenden. Wenn du wie ich unten $text per _GET abfrägst mach es do wie hier im Kommentar */
          echo "<img src='bild.php?".$text."' alt='bla'><br>
          <input type='submit' name='submit'>";
         }
        }
        ?>
        Deine Datei bild.php sieht dann ca. so aus:

        PHP-Code:
        <?

        if(isset($_GET['text'])){
         $text = $_GET['text'];
        }else{
         $text = "Dein Text";
        }

        header('Content-type: image/png');
        $image = @imagecreate(150, 100);
        imagecolorallocate($image, 250, 250, 200);
        $text_color = imagecolorallocate($image, 0, 51, 102);
        imagestring($image, 2, 5, 5, $text, $text_color);
        imagepng($image);
        ?>

        Kommentar


        • #5
          yipii

          Klappt alles so wie's soll

          Herzlichen danke an jmc.

          Kommentar


          • #6
            Schon nicht schlecht.
            Wenn ich aber in der Größe sehr unterschiedliche Bilder habe und auch der Textumfang differiert, wie kann ich das dann realisieren?
            Ich muss also in Abhängigkeit von der Bildgröße die Textgröße anpassen und dies ebenso in Abhängigkeit des Textumfangs.
            Habt ihr da eine Idee, welche Ansätze hierfür geeignet scheinen?

            so long
            Sevenger

            Kommentar

            Lädt...
            X