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 preg_match_all结合str_replace替换内容中所有img
Oct 11 PHP
PHP中判断文件存在使用is_file还是file_exists?
Apr 03 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
Symfony2实现在doctrine中内置数据的方法
Feb 05 PHP
PHP简单实现文本计数器的方法
Apr 28 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP经典实用正则表达式小结
May 04 PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 PHP
Laravel框架中自定义模板指令总结
Dec 17 PHP
PHP实现用session来实现记录用户登陆信息
Oct 15 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
Apr 06 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防盗链的常用方法小结
2010/07/02 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
2012/07/02 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
php 启动报错如何解决
2014/01/17 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
php常用日期时间函数实例小结
2019/07/04 PHP
PHP tp5中使用原生sql查询代码实例
2020/10/28 PHP
JQuery上传插件Uploadify使用详解及错误处理
2010/04/27 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JavaScript重载函数实例剖析
2016/05/13 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
js实现QQ面板拖拽效果(慕课网DOM事件探秘)(全)
2017/09/19 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
pycharm下打开、执行并调试scrapy爬虫程序的方法
2017/11/29 Python
python使用循环打印所有三位数水仙花数的实例
2018/11/13 Python
Python图片的横坐标汉字实例
2019/12/04 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
2020/02/20 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
python中round函数如何使用
2020/06/19 Python
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
优秀教师主要事迹
2014/02/01 职场文书
数学国培研修感言
2014/02/13 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
2021/04/01 PHP
Redis可视化客户端小结
2021/06/10 Redis
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
Pillow图像处理库安装及使用
2022/04/12 Python