可定制的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 相关文章推荐
实用函数2
Nov 08 PHP
PHP 网络开发详解之远程文件包含漏洞
Apr 25 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
PHP操作MySQL的mysql_fetch_* 函数的常见用法教程
Dec 25 PHP
PHP简单实现生成txt文件到指定目录的方法
Apr 25 PHP
php上传图片类及用法示例
May 11 PHP
php使用Jpgraph创建折线图效果示例
Feb 15 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
Laravel框架控制器的middleware中间件用法分析
Sep 30 PHP
Mac M1安装mnmp (Mac+Nginx+MySQL+PHP) 开发环境
Mar 29 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
分享PHP入门的学习方法
2007/01/02 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
php实现用手机关闭计算机(电脑)的方法
2015/04/22 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
关于js new Date() 出现NaN 的分析
2012/10/23 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
jQuery DOM插入节点操作指南
2015/03/03 Javascript
jquery中ajax处理跨域的三大方式
2016/01/05 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
2016/12/22 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能
2017/11/27 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
VSCode搭建Vue项目的方法
2020/04/30 Javascript
详解vue-router的Import异步加载模块问题的解决方案
2020/05/13 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Django csrf 验证问题的实现
2018/10/09 Python
Numpy数组的广播机制的实现
2020/11/03 Python
python 实现围棋游戏(纯tkinter gui)
2020/11/13 Python
文化宣传方案
2014/03/13 职场文书
公休请假条
2014/04/11 职场文书
住房租房协议书
2014/08/20 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2014年学校禁毒工作总结
2014/12/23 职场文书
青岛导游词
2015/02/12 职场文书
2015毕业实习推荐信
2015/03/23 职场文书
导游词之阳朔遇龙河
2019/12/16 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
Redis 报错 error:NOAUTH Authentication required
2022/05/15 Redis