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 将bmp图片转为jpg等其他任意格式的图片
Jun 29 PHP
PHP函数http_build_query使用详解
Aug 20 PHP
Destoon实现多表查询示例
Aug 21 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
php随机获取金山词霸每日一句的方法
Jul 09 PHP
PHP使用file_get_content设置头信息的方法
Feb 14 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
php登录超时检测功能实例详解
Mar 21 PHP
PHP多进程编程实例详解
Jul 19 PHP
php数值计算num类简单操作示例
May 15 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
要会喝咖啡也要会知道咖啡豆
2021/03/03 咖啡文化
很好用的PHP数据库类
2009/05/27 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
PHP7新特性
2021/03/09 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
通过命令行生成vue项目框架的方法
2017/07/12 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
python对html代码进行escape编码的方法
2015/05/04 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
Python docx库用法示例分析
2019/02/16 Python
Python基于mysql实现学生管理系统
2019/02/21 Python
浅谈Python3 numpy.ptp()最大值与最小值的差
2019/08/24 Python
使用apiDoc实现python接口文档编写
2019/11/19 Python
Python 日期与时间转换的方法
2020/08/01 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
橄榄树药房:OLIVEDA
2019/09/01 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
计算机本科生自荐信
2013/10/15 职场文书
毕业生自我鉴定
2013/11/05 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
导师就业推荐信范文
2014/05/22 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
小学家长通知书评语
2014/12/31 职场文书
大学军训决心书
2015/02/05 职场文书
护士求职简历自我评价
2015/03/10 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
JavaScript文档对象模型DOM
2021/11/20 Javascript