PHP自动生成缩略图函数的源码示例
一个简单但功能比较完善的自动生成缩略图的函数,可以按需要对图片进行缩放、裁切、锁定宽或高、使用空白填充
以下为源码,比较简单,相信很容易看明白,记得打开GD库的支持哦:
$src_w&&$height>$src_h)||($height>$src_h&&$width==0)||($width>$src_w&&$height==0)) { $proportion=1; } if($width>$src_w) { $dst_w=$width=$src_w; } if($height>$src_h) { $dst_h=$height=$src_h; } if(!$width&&!$height&&!$proportion) { returnfalse; } if(!$proportion) { if($cut==0) { if($dst_w&&$dst_h) { if($dst_w/$src_w>$dst_h/$src_h) { $dst_w=$src_w*($dst_h/$src_h); $x=0-($dst_w-$width)/2; } else { $dst_h=$src_h*($dst_w/$src_w); $y=0-($dst_h-$height)/2; } } elseif($dst_wxor$dst_h) { if($dst_w&&!$dst_h)//有宽无高 { $propor=$dst_w/$src_w; $height=$dst_h=$src_h*$propor; } elseif(!$dst_w&&$dst_h)//有高无宽 { $propor=$dst_h/$src_h; $width=$dst_w=$src_w*$propor; } } } else { if(!$dst_h)//裁剪时无高 { $height=$dst_h=$dst_w; } if(!$dst_w)//裁剪时无宽 { $width=$dst_w=$dst_h; } $propor=min(max($dst_w/$src_w,$dst_h/$src_h),1); $dst_w=(int)round($src_w*$propor); $dst_h=(int)round($src_h*$propor); $x=($width-$dst_w)/2; $y=($height-$dst_h)/2; } } else { $proportion=min($proportion,1); $height=$dst_h=$src_h*$proportion; $width=$dst_w=$src_w*$proportion; } $src=$createfun($src_img); $dst=imagecreatetruecolor($width?$width:$dst_w,$height?$height:$dst_h); $white=imagecolorallocate($dst,255,255,255); imagefill($dst,0,0,$white); if(function_exists('imagecopyresampled')) { imagecopyresampled($dst,$src,$x,$y,0,0,$dst_w,$dst_h,$src_w,$src_h); } else { imagecopyresized($dst,$src,$x,$y,0,0,$dst_w,$dst_h,$src_w,$src_h); } $otfunc($dst,$dst_img); imagedestroy($dst); imagedestroy($src); returntrue; } functionfileext($file) { returnpathinfo($file,PATHINFO_EXTENSION); } ?>
使用示例:
'; echo''; }else{ echo'ResizeImageFail!'; } ?>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。