php按百分比生成缩略图的代码分享


Posted in PHP onMay 10, 2014

于是翻了一下手册,弄懂几个函数后自己写了一个简单的php生成缩略图的程序。没有用类,我觉得一个函数就能搞定,而且对于新手来说更容易去理解,从而可以帮助到更多的人。

支持按比分比缩略,支持按指定的长宽缩略,默认按百分比。程序中注释已经很详细了,如有问题可在下面留言,欢迎与我交流。

源码如下:

<?php /*
  * param ori_img 原图像的名称和路径
  * param new_img 生成图像的名称
  * param percent 表示按照原图的百分比进行缩略,此项为空时默认按50%
  * param width 指定缩略后的宽度
  * param height 指定缩略后的高度
  * 
  * 注:当 percent width height 都传入值的时候,且percent>0时,优先按照百分比进行缩略
  * by:https://3water.com 更多源码与你分享
  * 温馨提示:使用此功能要在php.ini中开启 gd2
  *
  **/
 function makeThumb($ori_img, $new_img, $percent=50, $width=0, $height=0){
  $original = getimagesize($ori_img); //得到图片的信息,可以print_r($original)发现它就是一个数组
  //$original[2]是图片类型,其中1表示gif、2表示jpg、3表示png
  switch($original[2]){
   case 1 : $s_original = imagecreatefromgif($ori_img);
    break;
   case 2 : $s_original = imagecreatefromjpeg($ori_img);
    break;
   case 3 : $s_original = imagecreatefrompng($ori_img);
    break;
  }
  if($percent > 0){
   $width = $original[0] * $percent / 100;
   $width = ($width > 0) ? $width : 1;
   $height = $original[1] * $percent / 100;
   $height = ($height > 0) ? $height : 1;
  }
  //创建一个真彩的画布
  $canvas = imagecreatetruecolor($width,$height);
  imagecopyresized($canvas, $s_original, 0, 0, 0, 0, $width, $height, $original[0], $original[1]);
  //header("Content-type:image/jpeg");
  //imagejpeg($canvas); //向浏览器输出图片
  $loop = imagejpeg($canvas, $new_img); //生成新的图片
  if($loop){
   echo "OK!<br/>";
  }
 }
 makeThumb("bhsj.jpg","suolue1.jpg",15,0,0); //生成原图15%的缩略图
 makeThumb("bhsj.jpg","suolue2.jpg",0,200,120); //生成宽为100px,高为60px的缩略图
 makeThumb("bhsj.jpg","suolue3.jpg",15,200,120); //生成原图15%的缩略图(参数都填时,百分率优先级大)
?>

 

PHP 相关文章推荐
用PHP函数解决SQL injection
Oct 09 PHP
ADODB的数据库封包程序库
Dec 31 PHP
FirePHP 推荐一款PHP调试工具
Apr 23 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
Oct 03 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
php生成百度sitemap站点地图类函数实例
Oct 17 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
Apr 21 PHP
浅析Yii2缓存的使用
May 10 PHP
Django 标签筛选的实现代码(一对多、多对多)
Sep 05 PHP
PHP中创建和编辑Excel表格的方法
Sep 13 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
php判断IP地址是否在多个IP段内
Aug 18 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 #PHP
php下获取http状态的实现代码
May 09 #PHP
PHP防范SQL注入的具体方法详解(测试通过)
May 09 #PHP
简单的php新闻发布系统教程
May 09 #PHP
php下载文件源代码(强制任意文件格式下载)
May 09 #PHP
php中curl、fsocket、file_get_content三个函数的使用比较
May 09 #PHP
win7计划任务定时执行PHP脚本设置图解
May 09 #PHP
You might like
php echo 输出字符串函数详解
2010/05/13 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
javascript arguments 传递给函数的隐含参数
2009/08/21 Javascript
javascript 学习笔记(八)javascript对象
2011/04/12 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
Vue条件循环判断+计算属性+绑定样式v-bind的实例
2018/09/18 Javascript
解决vue keep-alive 数据更新的问题
2018/09/21 Javascript
详解Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
2019/04/20 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
js实现GIF图片的分解和合成
2019/10/24 Javascript
Python实现一个转存纯真IP数据库的脚本分享
2017/05/21 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
Python3实现的字典、列表和json对象互转功能示例
2018/05/22 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
2020/07/07 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
python 爬取英雄联盟皮肤并下载的示例
2020/12/04 Python
PyCharm+Miniconda3安装配置教程详解
2021/02/16 Python
从一次项目重构说起CSS3自定义变量在项目的使用方法
2021/03/01 HTML / CSS
全球性的在线商店:Vogca
2019/05/10 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
公积金转移接收函
2014/01/11 职场文书
人力资源管理专业自荐信
2014/06/24 职场文书
推普周活动总结
2014/08/28 职场文书
语文复习计划
2015/01/19 职场文书
入党团支部推荐意见
2015/06/02 职场文书
开机音效回归! Windows 11重新引入开机铃声
2021/11/21 数码科技