<?php

/* Advanced openSUSE countdown */


// Base image url
$img_url 'http://counter.opensuse.org/11.1/medium';

// Parse LANG value (string, 2-character language code)
if(preg_match('/^[a-z]{2}$/i'$_GET['lang']))
  
$img_url .= '.'.$_GET['lang'];

// Create base image
if(!($img_org = @imagecreatefrompng($img_url)))
    exit(
'Base image ('.$img_url.') not found');

// Parse RGB values (integer, range: 0-255)
foreach(array('red''green''blue') as $color)
  if(!
is_numeric($_GET[$color]) || ($_GET[$color] < || $_GET[$color] > 255))
    
$_GET[$color] = 0;

// Parse ALPHA value (integer, range: 0-127)
if(!is_numeric($_GET['alpha']) || ($_GET['alpha'] < || $_GET['alpha'] > 127))
  
$_GET['alpha'] = 0;

// Parse GAMMA value (float, range: 0.1-2.0)
if(!is_numeric($_GET['gamma']) || ($_GET['gamma'] < 0.1 || $_GET['gamma'] > 2.0))
  
$_GET['gamma'] = 1.0;

// Parse SIZE value (string, WIDTHxHEIGHT)
if(!preg_match('/^([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-6])x([01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-6])$/'$_GET['size']))
  
$_GET['size'] = '256x256';

// Create an empty image, and copy the area below the black header from the original image
$img imagecreatetruecolor(256256);
imagecopy($img$img_org078078256178);

// Apply filters to new image
imagefilter($imgIMG_FILTER_GRAYSCALE);
imagefilter($imgIMG_FILTER_COLORIZE$_GET['red'], $_GET['green'], $_GET['blue'], $_GET['alpha']);
imagegammacorrect($img1.0$_GET['gamma']);

// Copy the black header from the original image
imagecopy($img$img_org000025677);
imagedestroy($img_org);

// If requested, resize the image
if($_GET['size'] != '256x256')
{
  list(
$width$height) = explode('x'$_GET['size']);
  
$img_res imagecreatetruecolor($width$height);
  
imagecopyresampled($img_res$img0000$width,  $height256256);
  
$img $img_res;
}

// Output the final image
header('Content-Type: image/png');
imagepng($img);

?>