当前位置:Linux教程 - Php - 生成缩略图代码经本人测试

生成缩略图代码经本人测试

<?

$FILENAME
= "ResizeImage/".time()."";
// image height
$RESIZEWIDTH = 80;
// image width
$RESIZEHEIGHT = 100;

function
ResizeImage( $im, $maxwidth, $maxheight, $name )
{        
        
$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, $name . ".jpg" );
                
ImageDestroy ( $newim );
        }
        else
        {
                
ImageJpeg ( $im, $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" name="image" size="50" value="browse"><p>
<input type="submit" value="upload">
</form>

</body>
</html>