rodrigobertin
5/25/2015 - 8:01 PM

Rezise class

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;
    }



  }
}