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


Posted in PHP onJuly 05, 2017

本文实例讲述了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中路径问题的解决方案
Oct 09 PHP
php 代码优化之经典示例
Mar 24 PHP
浅析php中常量,变量的作用域和生存周期
Aug 10 PHP
php jq jquery getJSON跨域提交数据完整版
Sep 13 PHP
PHP使用Alexa API获取网站的Alexa排名例子
Jun 12 PHP
php读取文件内容的方法汇总
Jan 24 PHP
PHP Web木马扫描器代码分享
Sep 06 PHP
PHP实现补齐关闭的HTML标签
Mar 22 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
php读取本地json文件的实例
Mar 07 PHP
解决Laravel无法使用COOKIE和SESSION的问题
Oct 16 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 PHP
PHP实现的下载远程文件类定义与用法示例
Jul 05 #PHP
详解PHP使用Redis存储session时的一个Warning定位
Jul 05 #PHP
php如何修改SESSION的生存存储时间的实例代码
Jul 05 #PHP
PHP实现根据密码长度显示安全条
Jul 04 #PHP
PHP截取发动短信内容的方法
Jul 04 #PHP
phpcms配置列表页以及获得文章发布时间
Jul 04 #PHP
一个非常实用的php文件上传类
Jul 04 #PHP
You might like
ThinkPHP惯例配置文件详解
2014/07/14 PHP
js 格式化时间日期函数小结
2010/03/20 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
通过Jquery.cookie.js实现展示浏览网页的历史记录超管用
2015/10/23 Javascript
jquery控制页面的展开和隐藏实现方法(推荐)
2016/10/15 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
python实现简单登陆流程的方法
2018/04/22 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
pytorch实现MNIST手写体识别
2020/02/14 Python
python开发入门——列表生成式
2020/09/03 Python
python如何修改文件时间属性
2021/02/05 Python
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
报关简历自我评价怎么写
2013/09/19 职场文书
招商经理岗位职责
2013/11/16 职场文书
毕业生自荐书
2014/02/02 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
小学生评语集锦
2014/04/18 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
公益广告标语
2014/06/19 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
导游词之南京莫愁湖公园
2019/11/13 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript