Home >Backend Development >PHP Tutorial >PHP 生成图片缩略图函数

PHP 生成图片缩略图函数

WBOY
WBOYOriginal
2016-06-23 13:55:54869browse

各位小盆友使用前记得打开 GD 库的支持哦,附上代码。

<?php /** * 生成缩略图函数(支持图片格式:gif、jpeg、png和bmp) * @author ruxing.li * @param  string $src      源图片路径 * @param  int    $width    缩略图宽度(只指定高度时进行等比缩放) * @param  int    $width    缩略图高度(只指定宽度时进行等比缩放) * @param  string $filename 保存路径(不指定时直接输出到浏览器) * @return bool */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);

声明:本文出自 CSDN,转载请注明出处!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn