Captcha-System der erzeuge font(string) ist zu klein ... hilfe!
Benjamin
- php
Hallo
ich schreibe gerade ein Captcha-System für meine Kontakt Formulare
aber der erzeugte text ist meiner meinung nach viel zu klein im Bild
[CODE=PHP]
<?php
header ("Content-type: image/png");
list($usec, $sec) = explode(' ', microtime());
srand ((float) $sec + ((float) $usec * 100000));
for($i=0; $i< 10; $i++)
{
$x[] = rand(1,149);
$x2[] = rand(1,149);
$y[] = rand(1,49);
$y2[] = rand(1,49);
}
$string = substr(sha1(microtime()),0,4);
$image = @imagecreate(150, 50);
$blue = imagecolorallocate($image, 46, 67, 109);
$white = imagecolorallocate($image, 255, 255, 255);
$green = imagecolorallocate($image, 210, 217, 50);
imagestring($image, 5, rand(1,100), rand(1, 35), $string, $white);
for($i=0; $i<sizeof($x); $i++)
{
imageline ($image, $x[$i], $y[$i], $x2[$i], $y2[$i], $green );
}
imagepng($image);
imagedestroy($image);
?>
[/CODE]
da ist der code
und auf http://k-check.com/cani/capta.php ist ne testversion
bei int imagestring ( resource $im, int $font, int $x, int $y, string $s, int $col )
der $font ... ist ja ein wert von 1 bis 5 ... (intern) aber laut php.net kann man auch ein externen wert setzen der immer über 5 liegt ... aber wie :(
Mfg Benjamin
Moin!
bei int imagestring ( resource $im, int $font, int $x, int $y, string $s, int $col )
der $font ... ist ja ein wert von 1 bis 5 ... (intern) aber laut php.net kann man auch ein externen wert setzen der immer über 5 liegt ... aber wie :(
Indem man einfach einen passenden Wert übergibt - nachdem man imageloadfont benutzt hat, um diesem Wert einen Bitmapfont zuzuweisen. Ansonsten gehen nur Werte zwischen 1 und 5.
imagestring() ist nach meinem Empfinden nur nützlich, wenn man 1. keine Truetype-Fonts einsetzen will oder kann und 2. tatsächlich kleine Schriften benötigt, die bitmapgenau geschrieben werden müssen (TrueType neigt bei kleiner Schriftgröße eventuell zum Verpixeln).
imagettftext() ist besser.
- Sven Rautenberg
imagettftext() ist besser.
imagettftext ($image, 14, 0, rand(1,100),rand(14, 35), $white, "font/arial.ttf",$string);
Danke :)
geht super