Beispiel #1
0
    // Create panel
    $panel = new \TopiLib\TopiPanel('jpeg', 60, 255, 255, 255);
    $panel->txtLMagicMagnet = true;
    $panel->txtTMagicMagnet = true;
    $panel->txtRMagicMagnet = true;
    $panel->txtBMagicMagnet = true;
    $panel->txtLMagicMagnetTol = 10;
    $panel->createBlank(300, 200);
    // Pick random background, get info, and start captcha
    $background = $captcha_config['backgrounds'][rand(0, count($captcha_config['backgrounds']) - 1)];
    $image = new \TopiLib\TopiImage($background, 'png');
    $image->position = 'tile';
    $panel->addImage($image);
    // Determine text angle
    $angle = rand($captcha_config['angle_min'], $captcha_config['angle_max']) * (rand(0, 1) == 1 ? -1 : 1);
    // Select font randomly
    $font = $captcha_config['fonts'][rand(0, count($captcha_config['fonts']) - 1)];
    // Verify font file exists
    if (!file_exists($font)) {
        throw new Exception('Font file not found: ' . $font);
    }
    //Set the font size.
    $font_size = rand($captcha_config['min_font_size'], $captcha_config['max_font_size']);
    $text1 = new \TopiLib\TopiText($font, $captcha_config['code'], 1, $captcha_config['max_font_size'] + 1, $font_size, $font_size);
    $text1->rotation = $angle;
    $text1->settxtHexColor($captcha_config['color']);
    $text1->startY = 20;
    $text1->startX = 20;
    $panel->addText($text1);
    $panel->render();
}