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 相关文章推荐
杏林同学录(一)
Oct 09 PHP
vs中通过剪切板循环来循环粘贴不同内容
Apr 30 PHP
php实现图片添加水印功能
Feb 13 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
YII模块实现绑定二级域名的方法
Jul 09 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
非常经典的PHP文件上传类分享
May 15 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
使用XHProf查找PHP性能瓶颈的实例
Dec 13 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
Yii2框架redis基本应用示例
Jul 13 PHP
php文件包含的几种方式总结
Sep 19 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
使用MaxMind 根据IP地址对访问者定位
2006/10/09 PHP
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
异步加载技术实现当滚动条到最底部的瀑布流效果
2014/09/16 PHP
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
2013/12/12 Javascript
JQuery弹出炫丽对话框的同时让背景变灰色
2014/05/22 Javascript
Jquery检验手机号是否符合规则并根据手机号检测结果将提交按钮设为不同状态
2015/11/26 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
省市选择的简单实现(基于zepto.js)
2016/06/21 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
JavaScript数据结构之数组的表示方法示例
2017/04/12 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
Django1.3添加app提示模块不存在的解决方法
2014/08/26 Python
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
python查看模块安装位置的方法
2018/10/16 Python
Python补齐字符串长度的实例
2018/11/15 Python
3分钟学会一个Python小技巧
2018/11/23 Python
numpy求平均值的维度设定的例子
2019/08/24 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
《花瓣飘香》教学反思
2014/04/15 职场文书
学校消防安全责任书
2014/07/23 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书