php生成缩略图-保存文件(最帅的)

发布时间:2009年01月06日      浏览次数:927 次
这个最帅了.到用图片的时候去生成一下缩略图.
如果已经生成过了.直接输出,,如果还没有生成过缩略图.就生成一下..真是帅地掉渣..
程序代码
<?php
function thumb($imgpath="none.jpg",$w=48,$h=48,$t=false,$x=0,$y=0,$q=75){//
if(!is_file($imgpath)) return "none.gif";
$name = ereg_replace("\.?[a-zA-Z]{3,4}$",'',$imgpath)."-{$w}x{$h}";
$types = array(1=>'gif',2=>'jpeg',3=>'png');
list($sW,$sH,$type) = getimagesize($imgpath);
$name .= '.'.($type==2?'jpg':$types[$type]);
if(is_file($name)) return $name;
$icfe = "imagecreatefrom$types[$type]";
if(function_exists($icfe)){$imgS=$icfe($imgpath);}else{return;}
if($imgS){
$imgsave="image$types[$type]";
if($x||$y){
/*cut*/
}else{
if(($sW>$w||$sH>$h)){
if(($sW/$sH)>($w/$h)){
$icr[nW] =$w;$icr[nH] =(int)($sH*$w/$sW);
$icr[nX] =0; $icr[nY] =(int)(($h-$icr[nH])/2);
$icr[sW] =$sW;$icr[sH] =$sH;
}elseif(($sW/$sH)<($w/$h)){
$icr[nW] =(int)($sW*$h/$sH); $icr[nH] =$h;
$icr[nX] =(int)(($w-$icr[nW])/2);$icr[nY] =0;
$icr[sW] =$sW;$icr[sH] =$sH;
}elseif(($sW/$sH)==($w/$h)){
$icr[nW] =$w;$icr[nH] =$h;
$icr[nX] =0; $icr[nY] =0;
$icr[sW] =$sW;$icr[sH] =$sH;
}
}elseif($sW<$w&&$sH<$h){
$icr[nW] =$w;$icr[nH] =$h;
$icr[nX] =(int)(($w-$sW)/2);
$icr[nY] =(int)(($h-$sH)/2);
$icr[sW] =$sW;$icr[sH] =$sH;
}
}
}else{
return "$attachpath/none.gif";
}
clearstatcache();
if($icr[nX]>=0||$icr[nY]>=0||$t){
if(function_exists("imagecopyresampled")){
$newim =imagecreatetruecolor($w,$h);
imagefilledrectangle($newim,0,0,$w,$h,imagecolorallocate($newim,255,255,255));
imagecopyresampled($newim,$imgS,$icr[nX],$icr[nY],$icr[cX],$icr[cY],$icr[nW],$icr[nH],$icr[sW],$icr[sH]);
$imgsave($newim,$name,$q);
imagedestroy($newim);
unset($newim);
}
}else{
$imgsave($imgS,$name,$q);
}
imagedestroy($imgS);
unset($imgpath,$uid,$w,$t,$h,$icr,$x,$y,$q,$types,$sW,$sH,$type,$icfe,$imgS,$imgsave);
return $name;
}
echo "<img src='".thumb('a.jpg',200,200)."'/>";
?>
免责声明:本站相关技术文章信息部分来自网络,目的主要是传播更多信息,如果您认为本站的某些信息侵犯了您的版权,请与我们联系,我们会即时妥善的处理,谢谢合作!