Nicht angemeldet. · Kennwort vergessen · Registrierung deaktiviert
Forum: Übersicht Questions / Fragen RSS
captcha Font, Farbe und Art ändern?
Max (Gast) #1
Kein Benutzerprofil vorhanden.
Link auf diesen Beitrag
Betreff: 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
Benutzertitel: Author
Mitglied seit 06/2007 · 928 Beiträge
Gruppenmitgliedschaften: Administratoren, Mitglieder
Profil anzeigen · Link auf diesen Beitrag
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 (Gast) #3
Kein Benutzerprofil vorhanden.
Link auf diesen Beitrag
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.             }
Dieser Beitrag wurde am 22.09.2007, 20:06 von Morty verändert.
Morty (Administrator) #4
Benutzertitel: Author
Mitglied seit 06/2007 · 928 Beiträge
Gruppenmitgliedschaften: Administratoren, Mitglieder
Profil anzeigen · Link auf diesen Beitrag
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.
Schließen Kleiner – Größer + Auf diesen Beitrag antworten:
Prüfcode: VeriCode Gib bitte das Wort aus dem Bild ins folgende Textfeld ein. (Nur die Buchstaben eingeben, Kleinschreibung ist in Ordnung.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Weitere Zeichen:
Gehe zu Forum