forked from Chielus/InfoScreen
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathresize.php
71 lines (70 loc) · 2.12 KB
/
resize.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/**
* © 2012 iRail npo - Some rights reserved
*
* This script is part of InfoScreen code by FlatTurtle.
* aGPLv3
*/
//1. process GET parameters
if(!isset($_GET["height"])){
echo "Please add a height parameter to your url";
exit(0);
}
if(!isset($_GET["image"])){
echo "Please add an image parameter to your url";
exit(0);
}
$height = urldecode($_GET["height"]);
$f = urldecode($_GET["image"]);
$size = getimagesize($f);
$type = $size["mime"];
$img;
//determine right image function and load image
$imgFunc = '';
switch($type){
case 'image/gif':
$img = ImageCreateFromGIF($f);
$imgFunc = 'ImageGIF';
$transparent_index = ImageColorTransparent($img);
if($transparent_index!=(-1)) $transparent_color = ImageColorsForIndex($img,$transparent_index);
break;
case 'image/jpeg':
$img = ImageCreateFromJPEG($f);
$imgFunc = 'ImageJPEG';
break;
case 'image/png':
$img = ImageCreateFromPNG($f);
ImageAlphaBlending($img,true);
ImageSaveAlpha($img,true);
$imgFunc = 'ImagePNG';
break;
default:
die("ERROR - no image found");
break;
}
header("Content-Type: ".$type);
list($w,$h) = $size;
if( $w==0 or $h==0 ) die("ERROR - zero image size");
$percent = $height / $h;
//don't make too small, don't make too big
if($percent>-1 and $percent<1){
$nw = intval($w*$percent);
$nh = intval($h*$percent);
$img_resized = ImageCreateTrueColor($nw,$nh);
if($type=='image/png'){
ImageAlphaBlending($img_resized,false);
ImageSaveAlpha($img_resized,true);
}
if(!empty($transparent_color)){
$transparent_new = ImageColorAllocate($img_resized,$transparent_color['red'],$transparent_color['green'],$transparent_color['blue']);
$transparent_new_index = ImageColorTransparent($img_resized,$transparent_new);
ImageFill($img_resized, 0,0, $transparent_new_index);
}
if(ImageCopyResized($img_resized,$img, 0,0,0,0, $nw,$nh, $w,$h )){
ImageDestroy($img);
$img = $img_resized;
}
}
$imgFunc($img);
ImageDestroy($img);
?>