| function resizeImage($image, $prefix = '', $width = 266, $compression = 0) { if(strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { $image = iconv('utf-8', 'gbk', $image); } $imgInfo = getimagesize($image); $imgInfo['width'] = $imgInfo[0]; $imgInfo['height'] = $imgInfo[1]; $width = $imgInfo['width'] < $width ? $imgInfo['width'] : $width; if(!empty($imgInfo['width']) && !empty($imgInfo['height'])) { switch ($imgInfo['mime']) { case 'image/jpeg': $imgRes = imagecreatefromjpeg($image); break; case 'image/gif': $imgRes = imagecreatefromgif($image); break; case 'image/png': $imgRes = imagecreatefrompng($image); break; case 'image/bmp': $imgRes = imagecreatefromwbmp($image); break; } if($imgRes) { $proportion = $width / $imgInfo['width']; $height = $imgInfo['height'] * $proportion; $white = imagecreatetruecolor($width, $height); imagecopyresampled($white, $imgRes, 0, 0, 0, 0, $width, $height, $imgInfo['width'], $imgInfo['height']); $imgName = $prefix ? $prefix . $this->nameToChina($image) : $this->nameToChina($image); $imageName = dirname($image) . DS . $imgName; if(file_exists($imageName)) { unlink($imageName); } if(!$compression) { imagepng($white, $imageName); } else { imagejpeg($white,$imageName); } imagedestroy($white); imagedestroy($imgRes); } } } |