Żałoba
By: a guest | Apr 12th, 2010 | Syntax:
PHP | Size: 1.60 KB | Hits: 718 | Expires: Never
<?
$img = $_GET['img'];
$type = strtolower(array_pop(explode('.', $img)));
try {
switch($type) {
case 'jpg':
case 'jpeg':
$im = imagecreatefromjpeg($img);
$type = 'jpeg';
break;
case 'gif':
$imo = imagecreatefromgif($img);
$im = imagecreatetruecolor(imagesx($imo), imagesy($imo));
setTransparency($im, $imo);
imagecopy($im, $imo, 0, 0, 0, 0, imagesx($imo), imagesy($imo));
$type = 'gif';
break;
case 'png':
$im = imagecreatefrompng($img);
$type = 'png';
break;
}
if(!$im) throw new Exception();
if(!file_exists('cache/'.md5($img).'.'.$type)) {
$func = 'image'.$type;
imagealphablending($im, false);
imagesavealpha($im, true);
imagefilter($im, IMG_FILTER_GRAYSCALE);
$func($im, 'cache/'.md5($img).'.'.$type);
}
header('Content-type: image/'.$type);
readfile('cache/'.md5($img).'.'.$type);
}
catch(Exception $e) {
$type = strtolower(array_pop(explode('.', $img)));
header('Content-type: image/'.$type);
readfile($img);
}
function setTransparency($new_image,$image_source)
{
$transparencyIndex = imagecolortransparent($image_source);
$transparencyColor = array('red' => 255, 'green' => 255, 'blue' => 255);
if ($transparencyIndex >= 0) {
$transparencyColor = imagecolorsforindex($image_source, $transparencyIndex);
}
$transparencyIndex = imagecolorallocate($new_image, $transparencyColor['red'], $transparencyColor['green'], $transparencyColor['blue']);
imagefill($new_image, 0, 0, $transparencyIndex);
imagecolortransparent($new_image, $transparencyIndex);
return $new_image;
}