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 相关文章推荐
定制404错误页面,并发信给管理员的程序
Oct 09 PHP
php 获得汉字拼音首字母的函数
Aug 01 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
php使用codebase生成随机数
Mar 25 PHP
php实现的短网址算法分享
Jun 20 PHP
Yii实现MySQL多数据库和读写分离实例分析
Dec 03 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
php对文件进行hash运算的方法
Apr 03 PHP
学习php设计模式 php实现状态模式
Dec 07 PHP
PHP命名空间(namespace)原理与用法详解
Dec 11 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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序列号生成函数和字符串替换函数代码
2012/06/07 PHP
一个PHP二维数组排序的函数分享
2014/01/17 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
JS setCapture 区域外事件捕捉
2010/03/18 Javascript
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
JavaScript游戏之优化篇
2010/11/08 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
基于jQuery实现咖啡订单管理简单应用
2017/02/10 Javascript
JavaScript基础之this详解
2017/06/04 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
基于vue2.0动态组件及render详解
2018/03/17 Javascript
jQuery中的类名选择器(.class)用法简单示例
2018/05/14 jQuery
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
vue中 v-for循环的用法详解
2020/02/19 Javascript
python中使用pyhook实现键盘监控的例子
2014/07/18 Python
Python中的pprint折腾记
2015/01/21 Python
python中的print()输出
2019/04/12 Python
在python中做正态性检验示例
2019/12/09 Python
django实现将后台model对象转换成json对象并传递给前端jquery
2020/03/16 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
高中生毕业学习总结的自我评价
2013/11/14 职场文书
回门宴答谢词
2014/01/13 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
党员公开承诺书内容
2014/05/20 职场文书
入党后的感想
2015/08/10 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python
Python面试不修改数组找出重复的数字
2022/05/20 Python