Not logged in. · Lost password · Registration disabled
Forum: Overview Questions / Fragen RSS
captcha Font, Farbe und Art ändern?
Max (Guest) #1
No profile available.
Link to this post
Subject: captcha Font, Farbe und Art ändern?
Hallo,

ich würde gerne die Captchas ändern, also mit einem einfarbigen Hintergrund (nur schwarz) und nur
weißen, oder nur gelben Buchstaben und einer anderen Schriftart.

Gruß Max
Morty (Administrator) #2
User title: Author
Member since Jun 2007 · 928 posts
Group memberships: Administratoren, Mitglieder
Show profile · Link to this post
Die Schriftart kannst du austauschen der default.ttf ändern. Der Rest ist in der class.captcha.php, welche ich von Andreas John übernommen hab. Solltest du Änderungen vornehmen wäre es super wenn du sie hier dokumentieren könntest.
Max (Guest) #3
No profile available.
Link to this post
Danke.

die Schriftart ändern geht leider nicht, weil dann immer ein Fehler kommt, das irgendwas in Zeile 80 ( da wo default.tff defniert wird) nicht stimmt.

Ansonsten ging das änern aber ziemlich leicht:

class captcha

Hab erstmal das Bild ein bisschn größer gemacht und die Qualität erhöht.

  1.  
  2.     {
  3.         var $session_key = null;
  4.         var $temp_dir    = null;
  5.         var $width       = 200;
  6.         var $height      = 70;
  7.         var $jpg_quality = 80;

dann die hintergrund kreise einfarbig, die schrift einfarbig und grade:

  1.  
  2. // generate background of randomly built ellipses
  3.  
  4.             for ($i=1; $i<=200; $i++)
  5.             {
  6.                 $r = round( rand( 0, 0 ) );
  7.                 $g = round( rand( 156, 156 ) );
  8.                 $b = round( rand( 255, 255 ) );
  9.                 $color = imagecolorallocate( $img, $r, $g, $b );
  10.                 imagefilledellipse( $img,round(rand(0,$this->width)), round(rand(0,$this->height)), round(rand(0,$this->width/16)), round(rand(0,$this->height/4)), $color );   
  11.             }
  12.            
  13.  
  14.             $start_x = round($this->width / $num_chars);
  15.             $max_font_size = $start_x;
  16.             $start_x = round(0.5*$start_x);
  17.             $max_x_ofs = round($max_font_size*0.9);
  18.            
  19.  
  20.             // set each letter with random angle, size and color
  21.             for ($i=0;$i<=$num_chars;$i++)
  22.             {
  23.                 $r = round( rand( 250, 255 ) );
  24.                 $g = round( rand( 250, 255 ) );
  25.                 $b = round( rand( 250, 255 ) );
  26.                 $y_pos = ($this->height/2)+round( rand( 25, 26 ) );
  27.                
  28.                 $fontsize = round( rand( 36, 36) );
  29.                 $color = imagecolorallocate( $img, $r, $g, $b);
  30.                 $presign = round( rand( 0, 1 ) );
  31.                 $angle = round( rand( 0, 25 ) );
  32.                 if ($presign==true) $angle = -1*$angle;
  33.                 $fontpath = dirname(__FILE__) . '/';
  34.  
  35.                 ImageTTFText( $img, $fontsize, $angle, $start_x+$i*$max_x_ofs, $y_pos, $color, $fontpath . 'default.ttf', substr($char_seq,$i,1) );
  36.  
  37.             }
This post was edited on 2007-09-22, 19:06 by Morty.
Morty (Administrator) #4
User title: Author
Member since Jun 2007 · 928 posts
Group memberships: Administratoren, Mitglieder
Show profile · Link to this post
Hä? Ich hab die schrift ja auch geändert, weil ich mir mit der Lizenz nicht sicher war. Einfach die Schriftart deiner Wahl nehmen, in default.ttf umbenenen und die mitgelieferte dafault.ttf überschreiben.

P.s: Hab deinen code mal ein wenig umformatiert.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Go to forum