<?php

/* Imagick-Objekt erzeugen */
$Imagick = new Imagick();

/* Weißer Hintergrund */
$bg = new ImagickPixel();
$bg->setColor('white');

/* ImagickDraw-Objekt erzeugen */
$ImagickDraw = new ImagickDraw();

/* Schrift setzen */
$ImagickDraw->setFont('/path/to/fonts/font.ttf');
$ImagickDraw->setFontSize(20);

/* Zufallstext erzeugen */
$zeichen = 'ACBXZRMYHTL23456789';
$randomnr = mt_rand(0, strlen($zeichen)-6);
$captcha_text = substr(str_shuffle($zeichen), 
   $randomnr, 6);

/* Neues Bild mit weißem Hintergrund erzeugen */
$Imagick->newImage(85, 30, $bg);

/* Bildrauschen erzeugen */
$Imagick->addNoiseImage(imagick::NOISE_IMPULSE);

/* Text ins Bild schreiben */
for($i=0; $i<6; $i++){
   $randomnr = mt_rand(15,25);
   $Imagick->annotateImage($ImagickDraw, 12*$i, 
      $randomnr, ($randomnr-20)*2, $captcha_text{$i});
}

/* Bild verzerren */
$Imagick->swirlImage(30);
$Imagick->waveImage(4, 60);

/* Zufällige Linien erzeugen */
$ImagickDraw->line(mt_rand(0, 20), mt_rand(20, 30), 
    mt_rand(50, 70), mt_rand(0, 10));
$ImagickDraw->line(mt_rand(0, 70), mt_rand(0, 30), 
    mt_rand(0, 70), mt_rand(0, 30));
$ImagickDraw->line(mt_rand(0, 70), mt_rand(0, 30), 
    mt_rand(0, 70), mt_rand(0, 30));

/* Bild zeichnen, Format setzen und ausgeben*/
$Imagick->drawImage($ImagickDraw);
$Imagick->setImageFormat('jpeg');

session_start();
$_SESSION['captcha_phrase'] = $string;

echo $Imagick->getImageBlob();
$Imagick->destroy();

?>
