01.
function
resize(
$img
,
$w
,
$h
,
$newfilename
) {
02.
03.
04.
if
(!
extension_loaded
(
'gd'
) && !
extension_loaded
(
'gd2'
)) {
05.
trigger_error(
"GD is not loaded"
, E_USER_WARNING);
06.
return
false;
07.
}
08.
09.
10.
$imgInfo
=
getimagesize
(
$img
);
11.
switch
(
$imgInfo
[2]) {
12.
case
1:
$im
= imagecreatefromgif(
$img
);
break
;
13.
case
2:
$im
= imagecreatefromjpeg(
$img
);
break
;
14.
case
3:
$im
= imagecreatefrompng(
$img
);
break
;
15.
default
: trigger_error(
'Unsupported filetype!'
, E_USER_WARNING);
break
;
16.
}
17.
18.
19.
if
(
$imgInfo
[0] <=
$w
&&
$imgInfo
[1]
$h
/
$imgInfo
[1]) {
20.
$nWidth
=
$w
;
21.
$nHeight
=
$imgInfo
[1]*(
$w
/
$imgInfo
[0]);
22.
}
else
{
23.
$nWidth
=
$imgInfo
[0]*(
$h
/
$imgInfo
[1]);
24.
$nHeight
=
$h
;
25.
}
26.
}
27.
$nWidth
=
round
(
$nWidth
);
28.
$nHeight
=
round
(
$nHeight
);
29.
30.
$newImg
= imagecreatetruecolor(
$nWidth
,
$nHeight
);
31.
32.
33.
if
((
$imgInfo
[2] == 1) OR (
$imgInfo
[2]==3)){
34.
imagealphablending(
$newImg
, false);
35.
imagesavealpha(
$newImg
,true);
36.
$transparent
= imagecolorallocatealpha(
$newImg
, 255, 255, 255, 127);
37.
imagefilledrectangle(
$newImg
, 0, 0,
$nWidth
,
$nHeight
,
$transparent
);
38.
}
39.
imagecopyresampled(
$newImg
,
$im
, 0, 0, 0, 0,
$nWidth
,
$nHeight
,
$imgInfo
[0],
$imgInfo
[1]);
40.
41.
42.
switch
(
$imgInfo
[2]) {
43.
case
1: imagegif(
$newImg
,
$newfilename
);
break
;
44.
case
2: imagejpeg(
$newImg
,
$newfilename
);
break
;
45.
case
3: imagepng(
$newImg
,
$newfilename
);
break
;
46.
default
: trigger_error('Failed resize image!', E_USER_WARNING);
break
;
47.
}
48.
49.
return
$newfilename
;
50.
}