当前位置: 首页 > 图文教程 > 网络编程 > PHP > PHP批量生成缩略图的代码

PHP
mysql5的sql文件导入到mysql4的方法
sqlyog 中文乱码问题的设置方法
PHP CURL函数库
PHP 面向对象改进后的一点说明
攻克CakePHP系列一 连接MySQL数据库
CakePHP去除默认显示的标题及图标的方法
攻克CakePHP系列二 表单数据显示
攻克CakePHP系列三 表单数据增删改
smarty的保留变量问题
PHP syntax error, unexpected $end 错误的一种原因及解决
如何使用PHP编程说明
php合并数组array_merge函数运算符加号与的区别
php初学者写及时补给skype用户充话费的小程序
MySql 按时间段查询数据方法(实例说明)
Php Cookie的一个使用注意点
PHP程序61条面向对象分析设计的经验小结
令PHP初学者头疼十四条问题大总结
mysql limit查询优化分析
使用Limit参数优化MySQL查询的方法
方便实用的PHP生成静态页面类(非smarty)

PHP批量生成缩略图的代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 261 ::
收藏到网摘: n/a

本文件可以用于自动创建目录下所有JPG图片的缩略图,放到图片目录下运行即可。 缺点:长宽不一的图片会被拉伸变形,不能智能裁切,需要智能裁切的,请自行研究。
<?php
$config = array();
$config['path'] = "./";
$config['t_width'] = 120;
$config['t_height'] = 98;
$config['ignore'] = array("",".","..");
$config['prefix'] = "thumb_";
$done = 0;
define("IMAGE_JPG", 2);
define("ENDL", "\n");
if($handle = opendir($config['path'])) {
while(false !== ($file = readdir($handle))) {
if(!array_search($file,$config['ignore'])) {
list($im_width, $im_height, $type) = getimagesize($file);
if($type != IMAGE_JPG) {
continue;
}
$op .= "found -> <a href='{$file}'>$file</a>" . ENDL;
$im = @imagecreatefromjpeg($file);
if(!$im) {
$op .= "fail -> couldn't create sour image pointer." . ENDL;
continue;
}
if(file_exists($config['prefix'] . $file) || substr($file, 0, strlen($config['prefix'])) == $config['prefix']) {
$op .= "note -> this file has already got a thumbnail." . ENDL;
continue;
}
$to = imagecreatetruecolor($config['t_width'],$config['t_height']);
if(!$to) {
$op .= "fail -> couldn't create dest image pointer." . ENDL;
continue;
}
if(!imagecopyresampled($to, $im, 0, 0, 0, 0, $config['t_width'], $config['t_height'], $im_width, $im_height)) {
$op .= "fail -> couldn't create thumbnail. php fail." . ENDL;
continue;
}
//保存文件
imagejpeg($to, $config['prefix'] . $file);
$op .= "done -> created thumb: <a href='{$config['prefix']}{$file}'>{$config['prefix']}{$file}</a>" . ENDL;
$done++;
}
}
}
closedir($handle);
$op .= "fin -> {$done} file(s) written" . ENDL;
echo "<pre>";
echo $op;
echo "</pre>";
exit;
?>