首页 / 网页编程 / PHP / PHP批量生成缩略图的代码
缺点:长宽不一的图片会被拉伸变形,不能智能裁切,需要智能裁切的,请自行研究。
<?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", "
");
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;
?>