可定制的PHP缩略图生成程式(需要GD库支持)

网络整理 - 07-27
经典的PHP缩略图生成程式,基于GD库,可指定生成路径及生成目标的宽高细节

使用方法: 在支持GD库的PHP环境中,将以下代码另存为resize.php测试
<?$FILENAME="image_name";// 生成图片的宽度$RESIZEWIDTH=400;// 生成图片的高度$RESIZEHEIGHT=400;//生成图片的路径$uploaddir="c:/winnt/temp";function ResizeImage($im,$maxwidth,$maxheight,$name){global $uploaddir;$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,$uploaddir.$name . ".jpg");ImageDestroy ($newim);}else{ImageJpeg ($im,$uploaddir.$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);}}?><img src="<? echo($FILENAME.".jpg?reload=".rand(0,999999)); ?>"><br><br><form enctype="multipart/form-data" method="post"><br><input type="file" size="50" value="浏览"><p><input type="submit" value="上传图片"></form> </body></html>