可定制的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 相关文章推荐
vBulletin Forum 2.3.xx SQL Injection
Oct 09 PHP
谈谈PHP语法(3)
Oct 09 PHP
PHP 输出简单动态WAP页面
Jun 09 PHP
php不写闭合标签的好处
Mar 04 PHP
ThinkPHP3.1查询语言详解
Jun 19 PHP
php中动态变量用法实例
Jun 10 PHP
php有效防止图片盗用、盗链的两种方法
Nov 01 PHP
laravel自定义分页效果
Jul 23 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
php抽象方法和普通方法的区别点总结
Oct 13 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 checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
为你总结一些php信息函数
2015/10/21 PHP
PHP获取用户客户端真实IP的解决方案
2016/10/10 PHP
详解cookie验证的php应用的一种SSO解决办法
2017/10/20 PHP
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
Windows下安装Scrapy
2018/10/17 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
CSS3中animation实现流光按钮效果
2020/12/21 HTML / CSS
世界上最大的在线学习和教学市场:Udemy
2017/11/08 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
安全责任书模板
2014/07/22 职场文书
体育教师个人总结
2015/02/09 职场文书
期末个人总结范文
2015/02/13 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
私人贷款担保书该怎么写呢?
2019/07/02 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
quickjs 封装 JavaScript 沙箱详情
2021/11/02 Javascript
MySQL利用UNION连接2个查询排序失效详解
2021/11/20 MySQL
MySQL学习必备条件查询数据
2022/03/25 MySQL
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android