<?php

/* Advanced openSUSE countdown */

/*
  2012/08/25
  - Change base image url to http://counter.opensuse.org/medium
  2011/01/13
   - Official japanese image changed from jp to ja. Do jp/ja conversion.
  2010/09/18
   - Script updated to point to 11.4 countdown image (does not exist yet)
  2010/06/30
   - countdown.oo stopped serving the base image? reverting to counter.oo
  2010/05/22
   - Updated wiki page links to server countdown.oo instead of counter.oo
   - Script updated
  2010/02/18
   - Script updated to point to 11.3 countdown image (does not exist yet)
  2009/10/16
   - Some changes to the 11.2 counter image was introduced:
   - The black header with the "openSUSE 11.2" inscription was removed.
   - The background image was changed.
   - This script has been updated accordingly.
*/


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

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

// Create base image
if(!($img = @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';

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

// 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);

?>