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边学边教》(04.编写简易的通讯录――视频教程1)
Dec 13 PHP
php 删除cookie和浏览器重定向
Mar 16 PHP
php array_unique之后json_encode需要注意
Jan 02 PHP
php从右向左/从左向右截取字符串的实现方法
Nov 28 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 PHP
PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
May 04 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
php结合md5实现的加密解密方法
Jan 25 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
一键生成各种尺寸Icon的php脚本(实例)
Feb 08 PHP
PHP实现更改hosts文件的方法示例
Aug 08 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
May 25 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(4) php 函数 补充2
2010/02/15 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
php通过修改header强制图片下载的方法
2015/03/24 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
2013/04/12 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
弹出遮罩层后禁止滚动效果【实现代码】
2016/04/29 Javascript
Linux系统中利用node.js提取Word(doc/docx)及PDF文本的内容
2017/06/17 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
微信小程序自定义toast组件的方法详解【含动画】
2019/05/11 Javascript
vue源码nextTick使用及原理解析
2019/08/13 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[03:52]DOTA2英雄基础教程 酒仙
2013/12/23 DOTA
python strip()函数 介绍
2013/05/24 Python
Python+tkinter模拟“记住我”自动登录实例代码
2018/01/16 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
Django框架模型简单介绍与使用分析
2019/07/18 Python
Django框架之中间件MiddleWare的实现
2019/12/30 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
二年级体育教学反思
2014/01/15 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
党风廉政建设责任书
2014/04/14 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
中国梦演讲稿3分钟
2014/08/19 职场文书
会计出纳岗位职责
2015/03/31 职场文书
聋哑人盗窃罪辩护词
2015/05/21 职场文书
主持人大赛开场白
2015/05/29 职场文书
初中生物教学随笔
2015/08/15 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle
Python识别花卉种类鉴定网络热门植物并自动整理分类
2022/04/08 Python