可定制的PHP缩略图生成程式(需要GD库支持)


Posted in PHP onMarch 06, 2007

经典的PHP缩略图生成程式,基于GD库,可指定生成路径及生成目标的宽高细节 使用方法: 在支持GD库的PHP环境中,将以下代码另存为resize.php测试 

经典的PHP缩略图生成程式,基于GD库,可指定生成路径及生成目标的宽高细节 

使用方法: 在支持GD库的PHP环境中,将以下代码另存为resize.php测试  

<?  $FILENAME="image_name";  
// 生成图片的宽度  
$RESIZEWIDTH=400;  
// 生成图片的高度  
$RESIZEHEIGHT=400;  
//生成图片的路径  
$uploaddir="c:/winnt/temp";  
function ResizeImage($im,$maxwidth,$maxheight,$name){  
global $uploaddir;  
$width = imagesx($im);  
$height = imagesy($im);  
if(($maxwidth && $width > $maxwidth) || ($maxheight && $height > $maxheight)){  
if($maxwidth && $width > $maxwidth){  
$widthratio = $maxwidth/$width;  
$RESIZEWIDTH=true;  
}  
if($maxheight && $height > $maxheight){  
$heightratio = $maxheight/$height;  
$RESIZEHEIGHT=true;  
}  
if($RESIZEWIDTH && $RESIZEHEIGHT){  
if($widthratio < $heightratio){  
$ratio = $widthratio;  
}else{  
$ratio = $heightratio;  
}  
}elseif($RESIZEWIDTH){  
$ratio = $widthratio;  
}elseif($RESIZEHEIGHT){  
$ratio = $heightratio;  
}  
$newwidth = $width * $ratio;  
$newheight = $height * $ratio;  
if(function_exists("imagecopyresampled")){  
$newim = imagecreatetruecolor($newwidth, $newheight);  
imagecopyresampled($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
}else{  
$newim = imagecreate($newwidth, $newheight);  
imagecopyresized($newim, $im, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
}  
ImageJpeg ($newim,$uploaddir.$name . ".jpg");  
ImageDestroy ($newim);  
}else{  
ImageJpeg ($im,$uploaddir.$name . ".jpg");  
}  
}  

if($_FILES['image']['size']){  
if($_FILES['image']['type'] == "image/pjpeg"){  
$im = imagecreatefromjpeg($_FILES['image']['tmp_name']);  
}elseif($_FILES['image']['type'] == "image/x-png"){  
$im = imagecreatefrompng($_FILES['image']['tmp_name']);  
}elseif($_FILES['image']['type'] == "image/gif"){  
$im = imagecreatefromgif($_FILES['image']['tmp_name']);  
}  
if($im){  
if(file_exists("$FILENAME.jpg")){  
unlink("$FILENAME.jpg");  
}  
ResizeImage($im,$RESIZEWIDTH,$RESIZEHEIGHT,$FILENAME);  
ImageDestroy ($im);  
}  
}  
?>  
<img src="<? echo($FILENAME.".jpg?reload=".rand(0,999999)); ?>"><br><br>  
<form enctype="multipart/form-data" method="post">  
<br>  
<input type="file" name="image" size="50" value="浏览"><p>  
<input type="submit" value="上传图片">  
</form>   
</body>  
</html>
PHP 相关文章推荐
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 PHP
基于文本的访客签到簿
Oct 09 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
php木马webshell扫描器代码
Jan 25 PHP
PHP运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
php操作mysql数据库的基本类代码
Feb 25 PHP
php绘制一条弧线的方法
Jan 24 PHP
php使用正则验证中文
Apr 06 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
PHP设计模式之观察者模式定义与用法示例
Aug 04 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 #PHP
收集的php编写大型网站问题集
Mar 06 #PHP
用PHP实现Ftp用户的在线管理的代码
Mar 06 #PHP
个人站长制做网页常用的php代码
Mar 03 #PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 #PHP
给php新手谈谈我的学习心得
Feb 25 #PHP
Smarty+QUICKFORM小小演示
Feb 25 #PHP
You might like
Zend Guard一些常见问题解答
2008/09/11 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
PHP查询网站的PR值
2013/10/30 PHP
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
php通过rmdir删除目录的简单用法
2015/03/18 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
对象的类型:本地对象(1)
2006/12/29 Javascript
Prototype RegExp对象 学习
2009/07/19 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
jquery validate demo 基础
2015/10/29 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
详解vscode中vue代码颜色插件
2018/10/11 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
python查看zip包中文件及大小的方法
2015/07/09 Python
sublime python3 输入换行不结束的方法
2018/04/19 Python
使用Django2快速开发Web项目的详细步骤
2019/01/06 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
在 Pycharm 安装使用black的方法详解
2020/04/02 Python
Python importlib动态导入模块实现代码
2020/04/16 Python
阿拉伯世界最大的电子卖场:Souq埃及
2016/08/01 全球购物
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
调解协议书范本
2016/03/21 职场文书
vue-cropper组件实现图片切割上传
2021/05/27 Vue.js
python装饰器代码解析
2022/03/23 Python