Image Befehl: imagefilledrectangle

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

  • Image Befehl: imagefilledrectangle

    Hi,
    ich wollte ein script schreiben, dass bei screenshots automatisch ein © unten hinsetzt.
    Hier erstmal der Code:
    Code:
    $bildname = "/data/www/xxl-games.de/htdocs/bsp.jpg";
    $kom = 100;
    $img = ImageCreateFromJPEG($bildname);
    $white = imagecolorallocate($img,255,255,255);
    $black = imagecolorallocate($img,0,0,0);
    $text = $inhalt; //$inhalt kommt von nem formular
    $breite = imagesx($img);
    $hoehe = imagesy($img);
    
    //Erstellen des Bildes
    imagefilledrectangle($img,0,$hoehe25,$breite,$hoehe,$white);
    imagestring($img,4,5,$hoehe-20,$text,$black);
    imageJPEG($img,$bildname,$kom);
    ImageDestroy($img);
    So,
    Problem #1: Das erstellte viereck (imagefilledrectangle) hat irgendwie immer ne andere farbe.
    bloss nie die, die es haben sollte ($white).
    Problem #2: imagestring hat komischerweise keine auswirkungen mehr. Es sollte nämlich direkt
    auf das neu erstellte viereck, das copyright raufgeschrieben werden. Ohne imagefilledrectangle
    funzt imagestring, bloss hat das auch wieder irgendwelche farben, nur wieder net die, die es
    haben sollte ($black).

    Ich hoffe ihr könnt mir helfen.

    Bis dann

  • #2
    Versuche einmal anstatt imageJPEG($img,$bildname,$kom);
    imageJPEG($img);
    oder
    imageJPEG($img,'',$kom);

    Kommentar


    • #3
      ok, thx.
      ich werds mal testen

      Kommentar


      • #4
        Also auf jedenfall bleibt die farbe jetzt mal erhalten.
        Bloss ist jetzt schrift und viereck lila/pink, egal welche farbe ich angeb.
        Achja, die schrift ist auch etwas verwaschen
        Ich hoffe, das problem kann auch noch gelöst werden

        Cya

        Kommentar


        • #5
          imagefilledrectangle($img,0,$hoehe-25,$breite,$hoehe,$white);
          es sei denn $hoehe25 ist selbst eine Variable.

          Die Farben kommen bei mir exakt wie angegeben.

          Poste bitte genau den Code den Du jetzt hast.

          Kommentar


          • #6
            k.
            mein code
            Code:
            <?
            	//Variablen setzen
            	$bildname = "/data/www/xxl-games.de/htdocs/bsp.jpg";
            	$kom = 100;
            	$img = ImageCreateFromJPEG($bildname);
            	$white = imagecolorallocate($img,255,255,255);
            	$black = imagecolorallocate($img,0,0,0);
            	$text = "(C)2002 by [url]http://www.xxl-games.de";[/url]
            	$breite = imagesx($img);
            	$hoehe = imagesy($img);
            
            	//Erstellen des Bildes
            	imagefilledrectangle($img,0,$hoehe-25,$breite,$hoehe,$white);
            	imagestring($img,4,5,$hoehe-20,$text,$white);
            	imageJPEG($img,$bildname,$kom);
            	
            	echo "<img src=http://www.xxl-games.de/bsp.jpg>";
            
            ?>
            Ich hab jetzt rausgefunden, dass wenn man imagejpeg($img,$bildname,$kom) nimmt, das bild auch so gespeichert wird. es wird also in wirklichkeit auf das bild geschrieben.
            lässt man $bildname weg, wird das bild nur im browser editiert, aber in wirklichkeit isses noch so wie am anfang.
            ich bräuchte die 1. methode . unten steht auch die url zu dem bild nachdem es vom oben genannten code behandelt wurde.

            http://www.xxl-games.de/bsp2.jpg

            Thx für die hilfe.

            Kommentar


            • #7
              Folgender Code entspricht im wesentlichen Deinem stellt bei mir alles korrekt dar:
              Code:
              <?
              	header("Content-type: image/jpeg");
              	$bildname = "bsp2.jpg";
              	$kom = 100;
              	$img = ImageCreateFromJPEG($bildname);
              	$white = imagecolorallocate($img,255,255,255);
              	$black = imagecolorallocate($img,0,0,0);
              	$text = "(C)2002 by [url]http://www.xxl-games.de";[/url]
              	$breite = imagesx($img);
              	$hoehe = imagesy($img);
              	//Erstellen des Bildes
              	imagefilledrectangle($img,0,$hoehe-25,$breite,$hoehe,$black);
              	imagestring($img,4,5,$hoehe-20,$text,$white);
              	imageJPEG($img,'',$kom);
              	ImageDestroy($img);
              ?>
              Die von Dir beschriebenen Fehler treten manchmal bei alten Versionen der GD auf. (Diesen Hinweis habe ich woanders gefunden) Dort gibt es auch einen Hinweis, man solle versuchen ImageCreateTrueColor() und ImageCopyResampled() zu verwenden, was bei Deinem Skript aber wenig Sinn macht.

              Welche GD Library verwendest Du?
              Code:
              phpinfo();
              Bei mir ist es lt. phpinfo() GD Version 2.0 or higher

              Kommentar


              • #8
                Hm....dann liegts wohl daran
                GD Version 1.6.2 or higher
                Werd ich den Hoster mal darauf ansprechen müssen.

                Thx für deine hilfe

                Cya

                Kommentar

                Lädt...
                X