Crop the photo without using libraries [duplicate]

0

I have an image upload system and as a result follows as below:

HowwouldIdothat,regardlessofthesizeoftheimage,itcutandfittothesizeallowed,withoutstretchingtheimage.TheinitialcodeImadefollows:

publicfunctiongerarThumb($id,$modulos,$diretorio,$foto){$diretorioNormal=$diretorioUsuario."/imagens/";
   $diretorioThumb = $diretorio."/imagens/thumb/";

   $fotoDir = $diretorioNormal.$foto;

   list($largura,$altura) = getimagesize($fotoDir);
   list($arquivo,$extensao) = explode(".",$foto);

   if($extensao == "jpg" || $extensao == "jpeg" || $extensao == "JPG"){

        if($largura > $altura){
          $novaLargura = 500; // 296
          $novaAltura = 300; //219
          $miniatura = imagecreatetruecolor($novaLargura, $novaAltura);
          $imagem = imagecreatefromjpeg($fotoDir);
          imagecopyresampled($miniatura, $imagem, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
          imagejpeg($miniatura,$diretorioThumb.$foto,90);
       }
       if($altura > $largura){
         $novaLargura = 170;
         $novaAltura = 240;
         $miniatura = imagecreatetruecolor($novaLargura, $novaAltura);
         $imagem = imagecreatefromjpeg($fotoDir);
         imagecopyresampled($miniatura, $imagem, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
         imagejpeg($miniatura,$diretorioThumb.$foto,90);
       }
       if($altura == $largura){
         $novaLargura = 240;
         $novaAltura = 240;
         $miniatura = imagecreatetruecolor($novaLargura, $novaAltura);
         $imagem = imagecreatefromjpeg($fotoDir);
         imagecopyresampled($miniatura, $imagem, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
         imagejpeg($miniatura,$diretorioThumb.$foto,90);
       }
   }
   if($extensao == "png"){

       if($largura > $altura){
          $novaLargura = 500;
          $novaAltura = 300;
          $miniaturaPNG = imagecreatetruecolor($novaLargura, $novaAltura);
          $imagemPNG = imagecreatefrompng($fotoDir);
          imagecopyresampled($miniaturaPNG, $imagemPNG, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
          imagepng($miniaturaPNG,$diretorioThumb.$foto,null,90);
       }
       if($altura > $largura){
          $novaLargura = 170;
          $novaAltura = 240;
          $miniaturaPNG = imagecreatetruecolor($novaLargura, $novaAltura);
          $imagemPNG = imagecreatefrompng($fotoDir);
          imagecopyresampled($miniaturaPNG, $imagemPNG, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
          imagepng($miniaturaPNG,$diretorioThumb.$foto,null,90);
       }
       if($altura == $largura){
          $novaLargura = 240;
          $novaAltura = 240;
          $miniaturaPNG = imagecreatetruecolor($novaLargura, $novaAltura);
          $imagemPNG = imagecreatefrompng($fotoDir);
          imagecopyresampled($miniaturaPNG, $imagemPNG, 0, 0, 0, 0, $novaLargura, $novaAltura, $largura, $altura);
          imagepng($miniaturaPNG,$diretorioThumb.$foto,null,90);
       }
   }
   list($excluir,$diretorio) = explode("../",$diretorio);
   $caminhoAbsoluto = "".$this->caminhoAbsoluto($http = 'off')."/".$diretorio."/imagens/thumb/";
   return $caminhoAbsoluto.$foto;
  }
    
asked by anonymous 08.10.2018 / 02:53

0 answers