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

2015-01-24信息快讯网

PHP用GD库生成高质量的缩略图片,PHP一般情况下生成的缩略图都比较不理想。今天试用PHP,GD库来生成缩略图。虽然并不100%完美。可是也应该可以满足缩略图的要求了。

以下是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> 
PHP5权威编程阅读学习笔记 附电子书下载
PHP中使用unset销毁变量并内存释放问题
php Ubb代码编辑器函数代码
PHP取整数函数常用的四种方法小结
PHP函数学习之PHP函数点评
PHP序列号生成函数和字符串替换函数代码
PHP图片验证码制作实现分享(全)
PHP图片处理类 phpThumb参数用法介绍
PHPThumb PHP 图片缩略图库
PHP备份数据库生成SQL文件并下载的函数代码
PHP将整个网站生成HTML纯静态网页的方法总结
php摘要生成函数(无乱码)
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
php中通过正则表达式下载内容中的远程图片的函数代码
PHP提取字符串中的图片地址[正则表达式]
利用Ffmpeg获得flv视频缩略图和视频时间的代码
php 缩略图实现函数代码
PHP缩略图等比例无损压缩,可填充空白区域补充色
用php的ob_start来生成静态页面的方法分析
php GeoIP的使用教程
让PHP COOKIE立即生效,不用刷新就可以使用
通过JavaScript或PHP检测Android设备的代码
PHP中uploaded_files函数使用方法详解
PHP $_FILES函数详解
php批量缩放图片的代码[ini参数控制]
兼容性最强的PHP生成缩略图的函数代码(修改版)
Php Image Resize图片大小调整的函数代码
php生成随机密码的几种方法
兼容性比较好的PHP生成缩略图的代码
完美实现GIF动画缩略图的php代码
php下尝试使用GraphicsMagick的缩略图功能
PHP 图片文件上传实现代码
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
《PHP编程最快明白》第七讲:php图片验证码与缩略图
php生成随机密码的三种方法小结
PHP生成excel时单元格内换行问题的解决方法
©2014-2024 dbsqp.com