发新话题
打印

php等比例缩放图片大小

php等比例缩放图片大小

$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; } //header("Content-typemime"); $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); //imagecopyresized($dstThumbPic, $srcPic, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $srcWidth, $srcHeight); imagejpeg($dstThumbPic, 'p1_thumb.jpg', 100); imagedestroy($dstThumbPic); imagedestroy($srcPic); } elseif ($isGif) { //$dstThumbPic = imagecreate($thumbWidth, $thumbHeight); /* attention */ $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); //imagecopyresized($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); //imagecopyresized($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 = "400"; $thumbMaxHeight = "400"; /* 浏览图长宽限制 */ $browseMaxWidth = "400"; $browseMaxHeight = "400"; foreach ($arrFile as $file) { makeThumb($file, 'images/', $thumbMaxWidth, $thumbMaxHeight); } die('ok'); ?>

TOP

发新话题