PHP基于GD库实现的生成图片缩略图函数示例

发布时间 - 2026-01-11 02:11:21    点击率:

本文实例讲述了PHP基于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);

注:记得先打开 GD 库的支持

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP图形与图片操作技巧汇总》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # GD库  # 生成  # 图片  # 缩略图  # php使用高斯算法实现图片的模糊处理功能示例  # php生成条形码的图片的实例详解  # PHP实现随机生成水印图片功能  # PHP生成图片验证码功能示例  # PHP生成图片缩略图类示例  # php生成二维码图片方法汇总  # php解析base64数据生成图片的方法  # PHP使用内置函数生成图片的方法详解  # PHP Imagick完美实现图片裁切、生成缩略图、添加水印  # php 生成文字png图片的代码  # 使用PHP生成图片的缩略图的方法  # PHP实现生成模糊图片的方法示例  # 程序设计  # 操作技巧  # 相关内容  # 感兴趣  # 给大家  # 更多关于  # 所述  # 面向对象  # 编程技巧  # 讲述了  # int  # width  # filename  # src  # li  # param  # string  # return  # height  # isset 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何破解联通资金短缺导致的基站建设难题?  Laravel如何处理异常和错误?(Handler示例)  香港服务器如何优化才能显著提升网站加载速度?  佛山网站制作系统,佛山企业变更地址网上办理步骤?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  javascript基本数据类型及类型检测常用方法小结  郑州企业网站制作公司,郑州招聘网站有哪些?  Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  EditPlus中的正则表达式 实战(4)  如何在云服务器上快速搭建个人网站?  如何用PHP快速搭建高效网站?分步指南  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Laravel如何编写单元测试和功能测试?(PHPUnit示例)  如何获取PHP WAP自助建站系统源码?  如何利用DOS批处理实现定时关机操作详解  智能起名网站制作软件有哪些,制作logo的软件?  进行网站优化必须要坚持的四大原则  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何在七牛云存储上搭建网站并设置自定义域名?  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  零基础网站服务器架设实战:轻量应用与域名解析配置指南  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  新三国志曹操传主线渭水交兵攻略  Laravel怎么配置S3云存储驱动_Laravel集成阿里云OSS或AWS S3存储桶【教程】  jquery插件bootstrapValidator表单验证详解  Laravel如何实现数据库事务?(DB Facade示例)  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  免费视频制作网站,更新又快又好的免费电影网站?  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  jQuery validate插件功能与用法详解  Laravel如何使用模型观察者?(Observer代码示例)  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  如何自定义建站之星网站的导航菜单样式?  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出  实例解析Array和String方法  Bootstrap整体框架之JavaScript插件架构  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何在阿里云完成域名注册与建站?  详解阿里云nginx服务器多站点的配置