Dynamische Bilder - Spamschutz

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

  • Dynamische Bilder - Spamschutz

    hallo!

    ich habe mir eine Rechenaufgabe in einem Spam-Schutzbild gebastelt.

    Auf meinem Lokalen Server (EasyPhp 1.8) sieht das Bild so aus:


    Auf dem Webserver leider so:


    Wie kann ich erreichen, dass auch um die Zahlen herum, die Farbe/Punkte sind?
    Beachte: Dumm ist, wer Dummes tut.

  • #2
    Hallo,

    bitte schildere dein Problem ausführlich. Leider ist bisher nicht zu erkennen, wie du die Bilder erzeugst oder ob du nur fertige Bilder ineinander blendest. Wenn du es mit PHP machst, poste die relevanten Code-Schnipsel.

    Da es offenbar unterschiedliche Server sind, vergleiche bitte deren Version und lass es uns wissen und prüf gleich noch die Version der jeweilig verwendeten GD Bibliothek.

    Gruß,

    Anja
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Dürfte wohl ein Problem mit der (Alpha-)Transparenz sein.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Okay.

        Also Lokal sind es folgende Werte laut phpinfo()
        Code:
        GD Support 	enabled
        GD Version 	bundled (2.0.28 compatible)
        FreeType Support 	enabled
        FreeType Linkage 	with freetype
        GIF Read Support 	enabled
        GIF Create Support 	enabled
        JPG Support 	enabled
        PNG Support 	enabled
        WBMP Support 	enabled
        XBM Support 	enabled
        und auf dem Server:
        Code:
        GD Support 	enabled
        GD Version 	bundled (2.0.34 compatible)
        FreeType Support 	enabled
        FreeType Linkage 	with freetype
        FreeType Version 	2.3.9
        GIF Read Support 	enabled
        GIF Create Support 	enabled
        JPG Support 	enabled
        PNG Support 	enabled
        WBMP Support 	enabled
        XBM Support 	enabled
        Also ist der Server aktueller!

        Mein Code mit dem ich dieses Bild baue:
        Ich rufe eine Funktion auf:
        PHP-Code:
        //Farbwerte / Zufall 
        $from rand(50,205).','.rand(50,205).','.rand(100,205).',0';
        $to rand(100,200).','.rand(100,200).','.rand(1,100).','.rand(1,100);

        //Höhe/Breite

        $height 50;
        $steps 100;
        $step_width 1;

        gradient ($from$to$height$steps$step_width); 
        Die Funktion:
        PHP-Code:
        function gradient($from$to$height$steps$step_width) {
          
        session_start();
          
        $zahl1                 rand(1,9);
          
        $operation             rand(1,2);
          if(
        $operation == 1)
          {
            
        $zahl2 rand(1,9);
            
        $op_z "+";
            
        $erg $zahl1 $zahl2;
          }
          else
          {
            
        $zahl2 rand(1,$zahl1);
            
        $op_z "-";
            
        $erg $zahl1 $zahl2;
          }
          
          
        $_SESSION['spamschutz'] = $erg;
          
        $im imagecreatetruecolor(++$steps $step_width$height);
          
        imagesavealpha($imtrue);
          
        imagealphablending($imfalse);
          
        imagefill($im00imagecolorallocatealpha($im225225225127));
          
        $from explode(','$from);
          
        $to explode(','$to);
          
        $diff = array();
          for (
        $i 0$i 4$i++) {
            
        $diff[$i] = ($from[$i] - $to[$i]) / $steps;
          }
          for (
        $step 0$step $steps$step++) {
            for (
        $i 0$i 4$i++) {
              
        $rgb[$i] = round($from[$i] - $diff[$i] * $step);
              if (
        $i 3) {
                if (
        $rgb[$i] > 255) {
                  
        $rgb[$i] = 255;
                }
              } elseif (
        $rgb[3] > 127) {
                
        $rgb[3] = 127;
              }
            }
            
        $col imagecolorallocatealpha($im$rgb[0], $rgb[1], $rgb[2], $rgb[3]);
            
        $col1 imagecolorallocatealpha($im250250250250);
            
        $col2 imagecolorallocatealpha($im1111); //schwarz

            
        imageline($im00050$col2);
            
        imageline($im001000$col2);
            
        imageline($im9909950$col2);
            
        imageline($im04910049$col2);

            
        imageline($im11150$col2);
            
            
        imageline($im11991$col2);
            
        imageline($im9819850$col2);
            
        imageline($im1489948$col2);

            
        $string $zahl1 ." ".$op_z." ".$zahl2;
            
        imagettftext($im200535$col1'./font/courbd.ttf'$string);
            
            for(
        $i 0$i 20$i++)
            {
              
        imagesetpixel($imrand(2,96), rand(3,48),$col2);
            }

            for(
        $i 0$i 20$i++)
            {
              
        imagesetpixel($imrand(2,96), rand(3,48),$col1);
            }
            
        imagefilledrectangle($im$step $step_width0, ($step 1) * $step_width 1$height$col);
          }

          
        header('Content-type: image/png');
          
        header"Expires: 01 Jan 2009 07:00:00 GMT" );
          
        header"Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT" );
          
        header"Cache-Control: no-store, no-cache, must-revalidate" );
          
        header"Cache-Control: post-check=0, pre-check=0"false );
          
        header"Pragma: no-cache" );

          
        imagepng($im);
          
        imagedestroy($im);

        Beachte: Dumm ist, wer Dummes tut.

        Kommentar


        • #5
          Hallo,

          ich hab's jetzt nicht genauer betrachtet, aber warum benutzt du kein Alphablending?
          PHP-Code:
          imagealphablending($imfalse); 
          Wenn du an der Stelle true nimmst, funktioniert es dann?

          Gruß,

          Anja
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            Danke!



            Das wars.... Ohh man war ich wohl Blind...
            Beachte: Dumm ist, wer Dummes tut.

            Kommentar

            Lädt...
            X