?php/*+-----------------------------------------------------------------------+*//*+ jpg,jif,png 图片 等 比例 压缩 +*//*+-----------------------------------------------------------------------+*/class rarimag{/** * 得到等 比例 缩放的长宽 *
$maxwidth) { $maxwidth = $maxwidth; if($srcheight > $maxheight) { $maxheight = ($srcheight/$srcheight) * $maxwidth; } else { $maxheight = $srcheight; } return array('width' => $maxwidth,'height' => $maxheight); } if($srcheight > $maxheight) { $maxheight = $maxheight; if($srcwidth > $maxwidth) { $maxwidth = ($srcwidth/$srcheight) * $maxheight; } else { $maxwidth = $srcwidth; } return array('width' => $srcwidth,'height' => $maxheight); } return array('width' => $srcwidth,'height' => $srcheight);
} /** * 等比例生成缩略图 * * @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; } //header(content-type:$mime); $arr = $this->getnewsize($maxwidth, $maxheight, $srcwidth, $srcheight); $thumbwidth = $arr['width']; $thumbheight = $arr['height']; if (isset($isjpeg) && $isjpeg) { $dstthumbpic = imagecreatetruecolor($thumbwidth, $thumbheight); $srcpic = imagecreatefromjpeg($srcfile); imagecopyresampled($dstthumbpic, $srcpic, 0, 0, 0, 0, $thumbwidth, $thumbheight, $srcwidth, $srcheight); imagejpeg($dstthumbpic, $dstfile, 100); imagedestroy($dstthumbpic); imagedestroy($srcpic); return true; } elseif (isset($isgif) && $isgif) { $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 = imagecreatefromgif($srcfile); imagecopyresampled($dstthumbpic, $srcpic, 0, 0, 0, 0, $thumbwidth, $thumbheight, $srcwidth, $srcheight); imagegif($dstthumbpic, $dstfile); imagedestroy($dstthumbpic); imagedestroy($srcpic); return true; } elseif (isset($ispng) && $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, $dstfile); imagedestroy($dstthumbpic); imagedestroy($srcpic); return true; } else { return false; } } else { return false; } }}?>