可定制的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设置虚拟WEB
Oct 09 PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
php下实现一个阿拉伯数字转中文数字的函数
Jul 10 PHP
PHP nl2br函数 将换行字符转成 &amp;lt;br&amp;gt;
Aug 21 PHP
比file_get_contents稳定的curl_get_contents分享
Jan 11 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
记录PHP错误日志 display_errors与log_errors的区别
Oct 09 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
简单谈谈PHP中的include、include_once、require以及require_once语句
Apr 23 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
PHP使用栈解决约瑟夫环问题算法示例
Aug 27 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中通过语义URL防止网站被攻击的方法分享
2011/09/08 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
php+mysql实现无限分类实例详解
2015/01/15 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
js限制checkbox选中个数以限制六个为例
2014/07/15 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
HTML中使背景图片自适应浏览器大小实例详解
2017/04/06 Javascript
vue addRoutes实现动态权限路由菜单的示例
2018/05/15 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
vue 如何从单页应用改造成多页应用
2020/10/23 Javascript
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
python检测远程服务器tcp端口的方法
2015/03/14 Python
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
2019/06/25 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
pyqt5中动画的使用详解
2020/04/01 Python
numpy的Fancy Indexing和array比较详解
2020/06/11 Python
python3排序的实例方法
2020/10/20 Python
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
过滤器的用法
2013/10/08 面试题
技校毕业生的自我评价
2013/12/27 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
婚内房产协议书范本
2014/10/02 职场文书
华山导游词
2015/02/03 职场文书
建筑工程材料员岗位职责
2015/04/11 职场文书
创业计划书之电动车企业
2019/10/11 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书