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+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
Dec 28 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
PHP的简单跳转提示的实现详解
Mar 14 PHP
对laravel in 查询的使用方法详解
Oct 09 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
Thinkphp 框架扩展之标签库驱动原理与用法分析
Apr 23 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源代码
2006/10/09 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
jQuery使用fadein方法实现渐出效果实例
2015/03/27 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
react.js 父子组件数据绑定实时通讯的示例代码
2017/09/25 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
vue组件三大核心概念图文详解
2019/05/30 Javascript
js常见遍历操作小结
2019/06/06 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
python实现将文本转换成语音的方法
2015/05/28 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
python可以用哪些数据库
2020/06/22 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
python 如何设置守护进程
2020/10/29 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
linux面试题参考答案(3)
2012/09/13 面试题
大专生自荐信
2013/10/04 职场文书
师范应届生语文教师求职信
2013/10/29 职场文书
后勤服务中心总经理工作职责
2014/03/03 职场文书
教导主任竞聘演讲稿
2014/05/16 职场文书
车间核算员岗位职责
2014/07/01 职场文书
公司股份合作协议书
2014/12/07 职场文书