<?

# preparing PNG fonts to use with KCAPTCHA.
# reads files from folder "../fonts0", scans for symbols ans spaces and writes new font file with cached symbols positions to filder "../fonts"

# comment or remove next line for using (commented for security reason):
//exit();

if ($handle = opendir('../fonts0')) {
    while (false !== ($file = readdir($handle))) {
        if ($file == "." || $file == "..") {
            continue;
        }

        $img = imagecreatefrompng('../fonts0/' . $file);
        imageAlphaBlending($img, false);
        imageSaveAlpha($img, true);
        $transparent = imagecolorallocatealpha($img, 255, 255, 255, 127);
        $white = imagecolorallocate($img, 255, 255, 255);
        $black = imagecolorallocate($img, 0, 0, 0);
        $gray = imagecolorallocate($img, 100, 100, 100);

        for ($x = 0; $x < imagesx($img); $x++) {
            $space = true;
            $column_opacity = 0;
            for ($y = 1; $y < imagesy($img); $y++) {
                $rgb = ImageColorAt($img, $x, $y);
                $opacity = $rgb >> 24;
                if ($opacity != 127) {
                    $space = false;
                }
                $column_opacity += 127 - $opacity;
            }
            if (!$space) {
                imageline($img, $x, 0, $x, 0, $column_opacity < 200 ? $gray : $black);
            }
        }
        imagepng($img, '../fonts/' . $file);
    }
    closedir($handle);
}
?> 
