php GD库 生成图片缩略图

 PHP基础  2018-12-02  admin  1548  2089


php GD库 生成图片缩略图

$img = 'images/2.jpg';
$file_name = createThumb($img, 500);
createThumb($img, 500, 'png', 'abc',90,false);


函数

/**
 * 生成缩略图
 * @param $img 原图路径
 * @param int $thumb_width 缩略图的宽度,默认200
 * @param string $ext 缩略图的扩展名,默认和原图相同
 * @param string $prefix 文件名前缀
 * @param int $quality jpg质量
 * @param bool $file 是否生成文件
 * @return mixed
 */
function createThumb($img, $thumb_width = 200, $ext = '', $prefix = 'thumb_', $quality = 80, $file = true)
{
    //获取原图像的大小
    $img_arr = getimagesize($img);
    $img_width = $img_arr[0];
    $img_height = $img_arr[1];
    //获取原图像资源
    $src = imagecreatefromAll($img);
    //计算缩略图大小
    $thumb_height = $img_height * $thumb_width / $img_width;
    //创建画布
    $thumb = imagecreatetruecolor($thumb_width, $thumb_height);
    //生成缩略图
    imagecopyresized($thumb, $src, 0, 0, 0, 0, $thumb_width, $thumb_height, $img_width, $img_height);

    $file_name = createImage($img, $thumb, $ext, $prefix, $quality, $file);
    imagedestroy($thumb);
    imagedestroy($src);
    return $file_name;
}
/**
 * 获取图片资源
 * @param $src 图片路径
 * @return bool|resource
 */
function imageCreateFromAll($src)
{
    $src_arr = getimagesize($src);
    switch ($src_arr['mime']) {
        case 'image/jpeg':
            return imagecreatefromjpeg($src);
        case 'image/png':
            return imagecreatefrompng($src);
        case 'image/gif':
            return imagecreatefromgif($src);
        case 'image/bmp':
            return imagecreatefrombmp($src);
//        case 'image/wbmp':
//            return imagecreatefromwbmp($src);
//        case 'image/webp':
//            return imagecreatefromwebp($src);
//        case 'image/x-xbitmap':
//            return imagecreatefromxbm($src);
//        case 'image/x-xpixmap':
//            return imagecreatefromxpm($src);
        default :
            return false;
    }
}


/**
 * 生成图片
 * @param $src 原图的路径
 * @param $im 目标图的资源
 * @param string $ext 生成图片的扩展,默认是原图扩展名
 * @param string $prefix 生成文件的前缀
 * @param int $quality 生成jpg格式图片的质量
 * @param bool $file 是否生成文件
 * @return bool|string
 */
function createImage($src, $im, $ext = '', $prefix = 'thumb_', $quality = 80, $file = true)
{
    $src_path = pathinfo($src);
    //$ext 为空,和原图扩展名相同
    if (empty($ext)) {
        $ext = $src_path['extension'];
    }
    $new_file = $src_path['dirname'] . '/' . $prefix . $src_path['filename'] . '.' . $ext;

    if ($file) {
        switch (strtolower($ext)) {
            case 'jpg':
                imagejpeg($im, $new_file, $quality);
                return $new_file;
            case 'png':
                imagepng($im, $new_file);
                return $new_file;
            case 'gif';
                imagegif($im, $new_file);
                return $new_file;
            default:
                return false;
        }
    } else {
        switch (strtolower($ext)) {
            case 'jpg':
                header('content-type:image/jpeg');
                imagejpeg($im, null, $quality);
                return $new_file;
            case 'png':
                header('content-type:image/png');
                imagepng($im);
                return $new_file;
            case 'gif';
                header('content-type:image/gif');
                imagegif($im);
                return $new_file;
            default:
                return false;
        }
    }
}


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

转载必须注明出处:

php GD库 生成图片缩略图 —— code.cent123.com

相关推荐


Systemd Web 管理系统:简化服务管理

# Systemd Web Systemd Web 是一个 Systemd 的 Web UI 管理系统,通过直观的界面和易用的操作,让用户能够轻松地管理 Linux 系统和服务。该项目旨在简化 Systemd 的使用,使得无论是专业的系统管理员还是普通的用户,都能够方便地对系统进行操作。 ## [github地址] (https://github.com/topascend/systemd

systemctl 使用

Systemd是Linux系统工具,用来启动守护进程,已成为大多数发行版的标准配置。而systemctl是Systemd的主命令,用于管理系统。其实我们大部分服务都有使用systemctl管理,比如MySQL、Nginx等等。常见配置如下:[Unit] #单元描述 Description=GFAPP #在什么服务启动之后再执行本程序 After=mysql.service [Serv

图片批量转换格式扩展名命工具

图片批量转换格式扩展名命工具图片批量转换格式扩展名命令行工具支持多线程设置,速度极快imageConverterGui.7z

图片批量转换格式扩展名命令行工具

图片批量转换格式扩展名命令行工具支持多线程设置,速度极快imageConverter.7z