/**
  * Redimentsiona uma imagem
  * @param int $w
  * @param int $h
  * @param string $arquivo
  * @param string $resizeType
  * @param int $qualidade
  * @param uint $color
  * @return boolean
  */
 static function redimensionaImg($w, $h, $pasta, $arquivo, $resizeType = 'crop', $qualidade = 100, $color = '#FFFFFF', $pastaResize = 'miniatura')
 {
     $arquivo = str_replace(['\\', '/'], DIRECTORY_SEPARATOR, $arquivo);
     $pastaArquivo = dirname($arquivo);
     if (in_array($pastaArquivo, ['.', '/', '\\']) or !$pastaArquivo) {
         $pastaArquivo = '';
     } else {
         $pastaArquivo .= DIRECTORY_SEPARATOR;
     }
     $arquivo = basename($arquivo);
     $pasta = str_replace(['\\', '/'], DIRECTORY_SEPARATOR, $pasta) . DIRECTORY_SEPARATOR;
     $fullDir = "{$pasta}{$pastaArquivo}{$arquivo}";
     if (is_dir($fullDir)) {
         $arquivo = 'default.jpg';
         $resizeType = 'preenchimento';
     } else {
         if (!file_exists($fullDir)) {
             $arquivo = "default.jpg";
             $resizeType = 'preenchimento';
         }
     }
     # Arquivo default.jpg
     if ($arquivo == 'default.jpg' and !file_exists("{$pasta}{$pastaArquivo}default.jpg")) {
         trigger_error('O Arquivo default.jpg não foi criado na pasta de imagens.');
     }
     $fullDir = "{$pasta}{$pastaArquivo}{$arquivo}";
     if (file_exists($fullDir)) {
         $extension = self::getFileExtension($arquivo);
         if (!file_exists("{$pasta}{$pastaArquivo}{$pastaResize}")) {
             mkdir("{$pasta}{$pastaArquivo}{$pastaResize}");
         }
         $fileName = preg_replace("/(.*)(\\..*)/", "\$1-" . sha1(str_replace('#', '', strtolower("{$w}-{$h}-{$qualidade}-{$resizeType}-{$color}"))) . "\$2", basename($arquivo));
         $fileName = $pastaArquivo . $pastaResize . DIRECTORY_SEPARATOR . $fileName;
         $newFile = "{$pasta}{$fileName}";
         if (!file_exists($newFile)) {
             $img = new IMGCanvas($fullDir);
             $img->hexa($color)->redimensiona($w, $h, $resizeType)->grava($newFile, $qualidade);
         }
         return base_url_images(str_replace('\\', '/', $fileName));
     }
     return null;
 }
 function getSource($Host = false)
 {
     return $Host ? base_url_images($this->Source) : $this->Source;
 }