PHP用GD库生成高质量的缩略图片


Posted in PHP onMarch 09, 2011

以下是PHP源代码(ResizeImage.php)。

<?php 
$FILENAME="image.thumb"; 
// 生成图片的宽度 
$RESIZEWIDTH=400; 
// 生成图片的高度 
$RESIZEHEIGHT=400; function ResizeImage($im,$maxwidth,$maxheight,$name){ 
$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,$name . ".jpg"); 
ImageDestroy ($newim); 
}else{ 
ImageJpeg ($im,$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); 
} 
} 
?>

以下是测试代码(demo.php)
<?php 
include('ResizeImage.php'); 
if(!empty($_POST)){ 
echo($FILENAME.".jpg?cache=".rand(0,999999)); 
} 
?> 
<form name="test" action="?submit=true" enctype="multipart/form-data" method="post" > 
<input type="file" name="image" size="50" value="浏览"><p> 
<input type="submit" value="上传图片"> 
</form>
PHP 相关文章推荐
phpfans留言版用到的install.php
Jan 04 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
php自动加载机制的深入分析
Jun 08 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
php发送post请求函数分享
Mar 06 PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
PHP中使用mpdf 导出PDF文件的实现方法
Oct 22 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
Laravel模糊查询区分大小写的实例
Sep 29 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
php GeoIP的使用教程
Mar 09 #PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 #PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 #PHP
PHP中uploaded_files函数使用方法详解
Mar 09 #PHP
PHP $_FILES函数详解
Mar 09 #PHP
PHP中for与foreach的区别分析
Mar 09 #PHP
php模板中出现空行解决方法
Mar 08 #PHP
You might like
php格式化工具Beautify PHP小小BUG
2008/04/24 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
2016/02/14 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
js读取本地excel文档数据的代码
2010/11/11 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
浅析JavaScript中的类型和对象
2013/11/29 Javascript
JS获取计算机mac地址以及IP的实现方法
2014/01/08 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
2014/11/16 Javascript
jquery事件preventDefault()方法用法实例
2015/01/16 Javascript
Treegrid的动态加载实例代码
2016/04/29 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
JS中数据结构之栈
2019/01/01 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
vscode 使用Prettier插件格式化配置使用代码详解
2020/08/10 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Python3中的真除和Floor除法用法分析
2016/03/16 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
python自动发邮件库yagmail的示例代码
2018/02/23 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
医师定期考核实施方案
2014/05/07 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
房地产端午节活动方案
2014/08/24 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
给老婆的道歉信
2015/01/20 职场文书
2015年党员承诺书
2015/01/21 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书