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 相关文章推荐
深入PHP数据缓存的使用说明
May 10 PHP
php 获取本地IP代码
Jun 23 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
Jun 29 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
PHP7+Nginx的配置与安装教程详解
May 10 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
PHP实现一个简单url路由功能实例
Nov 05 PHP
php面向对象的用户登录身份验证
Jun 08 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
Laravel框架之解决前端显示图片问题
Oct 24 PHP
php下的原生ajax请求用法实例分析
Feb 28 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 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 FPDF类库应用实现代码
2009/03/20 PHP
PHP URL地址获取函数代码(端口等) 推荐
2010/05/15 PHP
PHP仿盗链代码
2012/06/03 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
JS+CSS设置img在DIV中只显示Img垂直居中的部分
2013/10/24 Javascript
js拖动div 当鼠标移动时整个div也相应的移动
2013/11/21 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
php 修改密码实现代码
2017/05/24 Javascript
基于Vue实现拖拽效果
2018/04/27 Javascript
在vue中读取本地Json文件的方法
2018/09/06 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
python实现人人网登录示例分享
2014/01/19 Python
使用Python实现一个简单的项目监控
2015/03/31 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
HTML5的Video标签有部分MP4无法播放的问题解析(多图)
2017/08/18 HTML / CSS
3的组成教学反思
2014/04/30 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
个园导游词
2015/02/04 职场文书
立项申请报告范本
2015/05/15 职场文书
党员转正党支部意见
2015/06/02 职场文书
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS