CreateThumbnail( "aa.jpg" , "aa.gif" , 0 , 200 );
按比例生成缩略图
CreateThumbnail(源文件,目标文件,宽,高)
当宽/高 , 其中一个值为零时,就按比例输出..
function CreateThumbnail( $path , $newFileName , $width = 100 , $height = 100 )
{
//type: jpg,gif,png
// 当width = 0 或 height = 0 时,按宽或高比例缩小
@$s_img = getimagesize($path);
@$type = $s_img[ 2 ];
switch( $type )
{
case 1 : @$im = imagecreatefromgif( $path );break;
case 2 : @$im = imagecreatefromjpeg( $path ); break;
case 3 : @$im = imagecreatefrompng( $path );break;
default: $im = false;break;
}
@$s_width = imagesx( $im );
@$s_height = imagesy( $im );
$sizexy = getScaleImage( $path , $width , $height );
$width = $sizexy[ 0 ];
$height = $sizexy[ 1 ];
if( $im )
{
$im2 = imagecreatetruecolor( $width , $height );
imagecopyresized ( $im2 ,$im , 0 ,0 ,0 , 0 , $width , $height , $s_width , $s_height );
imagejpeg( $im2 , $newFileName );
}
return false;
}
function getScaleImage( $image , $perfectWidth , $perfectHeight )
{
//当$perfectWidth $perfectHeight 其中一个为零时,就按比例输出
//当$perfectWidth $perfectHeight 都不为零时,就按值输出
if ( realpath( $image ) != false )
{
$sizeArray = getimagesize( $image );
$sizeX = $sizeArray[ 0 ] ;
$sizeY = $sizeArray[ 1 ] ;
if ( $perfectWidth != 0 && $perfectHeight == 0 )
{
if ( $sizeX > $perfectWidth )
{
$scale = $sizeX / $sizeY ;
$sizeX = $perfectWidth;
$sizeY = floor( $sizeX/$scale );
}
}
if ( $perfectHeight != 0 && $perfectWidth == 0 )
{
if ( $sizeY > $perfectHeight )
{
$scale = $sizeY / $sizeX ;
$sizeY = $perfectHeight;
$sizeX = floor( $sizeY/$scale );
}
}
if ( $perfectHeight != 0 && $perfectWidth != 0 )
{
$sizeX = $perfectWidth;
$sizeY = $perfectHeight;
}
$tmp[] = $sizeX;
$tmp[] = $sizeY;
}
else
{
$tmp[] = 0;
$tmp[] = 0;
}
return $tmp;
}
//$tm = getScaleImage( "aa.jpg" , 100 , 100 );
//echo "<img src=/"aa.jpg/" width='".$tm[0]."' height='".$tm[1]."' />";
//foreach ( $tm as $v )
//{
// echo $v."<br>";
//}