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服务器多站点的配置

