<?php
function
mkThumbnail(
$src
,
$width
= null,
$height
= null,
$filename
= null) {
if
(!isset(
$width
) && !isset(
$height
))
return
false;
if
(isset(
$width
) &&
$width
<= 0)
return
false;
if
(isset(
$height
) &&
$height
<= 0)
return
false;
$size
=
getimagesize
(
$src
);
if
(!
$size
)
return
false;
list(
$src_w
,
$src_h
,
$src_type
) =
$size
;
$src_mime
=
$size
['mime'];
switch
(
$src_type
) {
case
1 :
$img_type
= 'gif';
break
;
case
2 :
$img_type
= 'jpeg';
break
;
case
3 :
$img_type
= 'png';
break
;
case
15 :
$img_type
= 'wbmp';
break
;
default
:
return
false;
}
if
(!isset(
$width
))
$width
=
$src_w
* (
$height
/
$src_h
);
if
(!isset(
$height
))
$height
=
$src_h
* (
$width
/
$src_w
);
$imagecreatefunc
= 'imagecreatefrom' .
$img_type
;
$src_img
=
$imagecreatefunc
(
$src
);
$dest_img
= imagecreatetruecolor(
$width
,
$height
);
imagecopyresampled(
$dest_img
,
$src_img
, 0, 0, 0, 0,
$width
,
$height
,
$src_w
,
$src_h
);
$imagefunc
= 'image' .
$img_type
;
if
(
$filename
) {
$imagefunc
(
$dest_img
,
$filename
);
}
else
{
header('Content-Type: ' .
$src_mime
);
$imagefunc
(
$dest_img
);
}
imagedestroy(
$src_img
);
imagedestroy(
$dest_img
);
return
true;
}
$result
= mkThumbnail('./IMG_3324.JPG', 147, 147);