-
php tutorials to upload pictures and generate the specified size chart in proportion This is an image thumbnail function Oh, upload a new picture to $ srcfile Then file $ thumbwidth thumbnail width maximum size and thumb thumb size Small picture.
Image thumbnail function parameter description:
$ srcfile original address
$ dir new map directory
$ thumbwidth Shrinks the maximum width of the image
$ thumbheitht thumbnail image max size
$ ratio default scaling to 1 is reduced to a fixed size.
* /
function makethumb ($ srcfile, $ dir, $ thumbwidth, $ thumbheight, $ ratio = 0)
{
/ / Determine whether the file exists
if (! file_exists ($ srcfile)) return false;
// Create a new file of the same name, but the directory is different
$ imgname = explode ('/', $ srcfile);
$ arrcount = count ($ imgname);
$ dstfile = $ dir. $ imgname [$ arrcount-1];
// Thumbnail size
$ tow = $ thumbwidth;
$ toh = $ thumbheight;
if ($ tow <40) $ tow = 40;
if ($ toh <45) $ toh = 45;
// Get image information
$ im = '';
if ($ data = getimagesize ($ srcfile)) {
if ($ data [2] == 1) {
$ make_max = 0; / / gif not dealt with
if (function_exists ("imagecreatefromgif")) {
$ im = imagecreatefromgif ($ srcfile);
}
} elseif ($ data [2] == 2) {
if (function_exists ("imagecreatefromjpeg")) {
$ im = imagecreatefromjpeg ($ srcfile);
}
} elseif ($ data [2] == 3) {
if (function_exists ("imagecreatefrompng")) {
$ im = imagecreatefrompng ($ srcfile);
}
}
}
if (! $ im) return ';
$ srcw = imagesx ($ im);
$ srch = imagesy ($ im);
$ towh = $ tow / $ toh;
$ srcwh = $ srcw / $ srch;
if ($ towh <= $ srcwh) {
$ ftow = $ tow;
$ ftoh = $ ftow * ($ srch / $ srcw);
} else {
$ ftoh = $ toh;
$ ftow = $ ftoh * ($ srcw / $ srch);
}
if ($ ratio) {
$ ftow = $ tow;
$ ftoh = $ toh;
}
// Zoom out the picture
if ($ srcw> $ tow || $ srch> $ toh || $ ratio) {
if (function_exists ("imagecreatetruecolor") && function_exists ("imagecopyresampled") && @ $ ni = imagecreatetruecolor ($ ftow, $ ftoh)) {
imagecopyresampled ($ ni, $ im, 0, 0, 0, 0, $ ftow, $ ftoh, $ srcw, $ srch);
} elseif (function_exists ("imagecreate") && function_exists ("imagecopyresized") && @ $ ni = imagecreate ($ ftow, $ ftoh)) {
imagecopyresized ($ ni, $ im, 0, 0, 0, 0, $ ftow, $ ftoh, $ srcw, $ srch);
} else {
return
}
if (function_exists ('imagejpeg')) {
imagejpeg ($ ni, $ dstfile);
} elseif (function_exists ('imagepng')) {
imagepng ($ ni, $ dstfile);
}
} else {
// smaller than the size of the direct copy
copy ($ srcfile, $ dstfile);
}
imagedestroy ($ im);
if (! file_exists ($ dstfile)) {
return
} else {
return $ dstfile;
}
}
?>