Rezise class
/**
* redimensionar
*/
class Rezise
{
private $permitida;
//seguridad
private function soloImagen($imagen) {
$ver = array('.jpeg','jpeg','.jpg','.png','.bmp','.gif');
$verExtesion = substr($imagen,-4);
//si no esta
if (!in_array($verExtesion, $ver)) {
//echo 'archivo <b>'.$imagen.'</b> no permitido';
//no permitir
return $this->permitida = 'no';
} else {
//permitir
return $this->permitida = 'si';
}
}
//crear minutura
public function ReziseImage($imagen, $maxWidth, $maxHeight = 0) {
self::soloImagen($imagen);
if($this->permitida=='si'){
//tomar los datos
list($widthOrig, $heightOrig, $tipo_imagen) = getimagesize($imagen);
//crear segun el tipo
switch ($tipo_imagen) {
case 1: //imagen gif
$img = imagecreatefromgif($imagen);
break;
case 2://imagen png
$img = imagecreatefromjpeg($imagen);
break;
case 3://imagen png
$img = imagecreatefrompng($imagen);
break;
}
//asiganar el alto automatico si esta en cero o nada
if ($maxHeight == 0) {
$maxHeight = $heightOrig * $maxWidth / $widthOrig;
}
//asignar el ancho automatico si esta en cero o nada
if ($maxWidth == 0 || !isset($maxWidth)) {
$maxWidth = $widthOrig * $maxHeight / $heightOrig;
}
//ajustar
$newImg = imagecreatetruecolor($maxWidth, $maxHeight);
//para png y gif
if (($tipo_imagen == 1) || ($tipo_imagen == 3)) {
imagealphablending($newImg, false);
imagesavealpha($newImg, true);
$transparente = imagecolorallocate($newImg, 255, 255, 255, 127);
}
imagecopyresampled($newImg, $img, 0, 0, 0, 0, $maxWidth, $maxHeight, $widthOrig, $heightOrig);
//generar segun el tipo
switch ($tipo_imagen) {
//generar gif
case 1:
@header("Content-Type: image/gif");
imagegif($newImg);
break;
//generar jpeg
case 2:
@header("Content-Type: image/jpeg");
imagejpeg($newImg);
break;
//generar png
case 3:
@header("Content-Type: image/png");
imagepng($newImg);
break;
}
//destruir
imagedestroy($newImg);
}else{
echo 'Archivo no permitido';
return false;
}
}
}