PHP缩略图类

<?php
/**
* @author www.iklfy.com
* @copyright 2011
* @filename thumb.class.php
*/
$arrFile = array('p1.jpg', 'p2.gif', 'p4.txt', 'p3.png');
/**
* 得到等比例缩放的长宽
*/
function getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight)
{
if ($srcWidth < $srcHeight)
{
$maxWidth = ($maxHeight / $srcHeight) * $srcWidth;
}
else
{
$maxHeight = ($maxWidth / $srcWidth) * $srcHeight;
}
return array('width' => $maxWidth, 'height' => $maxHeight);
}

/**
* 等比例生成缩略图
*
* @param String $srcFile 原始文件路径
* @param String $dstFile 目标文件路径
* @param Integer $maxWidth 生成的目标文件的最大宽度
* @param Integer $maxHeight 生成的目标文件的最大高度
* @return Boolean 生成成功则返回true,否则返回false
*/
function makeThumb($srcFile, $dstFile, $maxWidth, $maxHeight)
{
if ($size = getimagesize($srcFile))
{
$srcWidth = $size[0];
$srcHeight = $size[1];
$mime = $size['mime'];
switch ($mime)
{
case 'image/jpeg';
$isJpeg = true;
break;
case 'image/gif';
$isGif = true;
break;
case 'image/png';
$isPng = true;
break;
default:
return false;
break;
}
$arr = getNewSize($maxWidth, $maxHeight, $srcWidth, $srcHeight);
$thumbWidth = $arr['width'];
$thumbHeight = $arr['height'];
if ($isJpeg)
{
$dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);
$srcPic = imagecreatefromjpeg($srcFile);
imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
imagejpeg($dstThumbPic, 'p1_thumb.jpg', 100);
imagedestroy($dstThumbPic);
imagedestroy($srcPic);
} elseif ($isGif)
{
$dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight); /* attention */
//创建透明画布
imagealphablending($dstThumbPic, true);
imagesavealpha($dstThumbPic, true);
$trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);
imagefill($dstThumbPic, 0, 0, $trans_colour);
$srcPic = imagecreatefromgif($srcFile);
imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
imagegif($dstThumbPic, 'p2_thumb.gif');
imagedestroy($dstThumbPic);
imagedestroy($srcPic);
} elseif ($isPng)
{
$dstThumbPic = imagecreatetruecolor($thumbWidth, $thumbHeight);
//创建透明画布
imagealphablending($dstThumbPic, true);
imagesavealpha($dstThumbPic, true);
$trans_colour = imagecolorallocatealpha($dstThumbPic, 0, 0, 0, 127);
imagefill($dstThumbPic, 0, 0, $trans_colour);
$srcPic = imagecreatefrompng($srcFile);
imagecopyresampled($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight);
imagepng($dstThumbPic, 'p3_thumb.png');
imagedestroy($dstThumbPic);
imagedestroy($srcPic);
}
else
{
return false;
}
}
else
{
return false;
}
}
/* 缩略图长宽限制 */
$thumbMaxWidth = "100";
$thumbMaxHeight = "100";
/* 浏览图长宽限制 */
$browseMaxWidth = "400";
$browseMaxHeight = "400";
$file = "IMG_2058.jpg";
makeThumb($file, '', $thumbMaxWidth, $thumbMaxHeight);

die('ok');
?>

评论列表

此文章还没有评论。