Ir para conteúdo
Fórum Script Brasil
  • 0

Redimensionar Imagens Automaticamente...


Ricardo Portolan

Pergunta

amigos, preciso d uma GRANDE ajuda d vocês....

olha só... tenho um codigo aqui, show d bola p/ upload d arquivos....

mas o meu problema é o seguinte......

preciso d um jeito que o codigo abaixo faca o upload do arquivo no tamanho que eu estipule automaticamente, ANTES d entrar no servidor, ou seja, c não ele vai ocupar um espaco desnecessario...

claro, alem d ele reduzir a altura e a largura automaticamente, fazer c/ que reduza o tamanho em kbytes também, e c possivel, não perder a qualidade também...

bom, p/ facilitar a vocês que sabem... vou postar o codigo do upload que estou utilizando, abaixo:

<?php

// elimina o limite de tempo de execução

set_time_limit (0);

// **** configurações para o Upload ****

// Limitar as extensões? (sim ou não)

$Limitaext = "sim";

// extensões liberadas, para uma proteção maior nos arquivos enviados para o server

$extensoes = array(".jpg");

//Local onde os arquivos serão armazenados, lembre que o diretorio tem que estar com o chmod 777

$localUpload = "fotos/";

// Limite para o tamanho do arquivo (sim ou não)

$tamanho = "não";

// tamanho maximo para o arquivo

$tamanho_bytes = "30000000";

// se sobrepoe um arquivo existente (sim ou não)

$sobrescrever = "não";

$nome = $_FILES['foto02']['name'];

$tamanho_arquivo = $_FILES['foto02']['size'];

$temp = $_FILES['foto02']['tmp_name'];

if (!empty ($nome)) {

if ($sobrescrever == "não" && file_exists("$localUpload/$nome")) {

echo "Já existe o arquivo $nome.<br>";

echo "<p align=center><a href=upload.htm>Clique aqui para escolher outro Arquivo</a></p>";

exit;

}

if (($tamanho == "sim") && ($tamanho_arquivo > $tamanho_bytes)) {

echo "Arquivo $nome deve ter no máximo $tamanho_bytes bytes.<br>";

echo "<p align=center><a href=upload.htm>Clique aqui para escolher ooutro Arquivo</a></p>";

exit;

}

$ext = strrchr($nome,'.');

if ($Limitaext == "sim" && !in_array($ext,$extensoes)) {

echo "Extensão de arquivo inválida.<br>";

echo "<p align=center><a href=galeria_cadastro.php>Clique aqui para escolher outro Arquivo</a></p>";

exit;

}

if(move_uploaded_file($temp, "$localUpload/$nome")) {

echo "<p align=center>O upload do arquivo <b>". $nome."</b> foi concluído com sucesso.</p>";

echo "<p align=center><a href=galeria_cadastro.php>Novo upload</a></p>";

}

else {

echo "<p align=center>O arquivo não pode ser copiado para o servidor.</p>";

echo "<p align=center><a href=galeria_cadastro.php>Clique aqui para escolher o Arquivo</a></p>";

exit;

}

}

else {

echo "Arquivo não informado ou invalido<br>";

echo "<p align=center><a href=upload.htm>Clique aqui para escolher o Arquivo</a></p>";

exit;

}

?>

bom, entaum esse é o codigo que estou utilizando p/ o upload.... mas infelizmente ele não redimensiona automaticamente a imagem ANTES d entrar no servidor.... e é disso que estou precisando.... c puderem m ajudar ficarei muito grato...

desde já, agradeco a todos, que d alguma forma, ou d outra.... tentaraum m dar uma maum....

grande abraco e muito obrigado....

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

<?php

$imagem = "COLOQUE AQUI A SUA IMAGEM.jpg";

//Define a Largura e a Altura

$largura = 200;

$altura = 160;

//Nome do arquivo redimensionado

$imagem_gerada = explode(".", $imagem);

//pegamos o conteudo do array e concatenamos com novo.jpg

$imagem_gerada = $imagem_gerada[0]."_novo.jpg";

//criamos uma nova imagem ( que vai ser a redimensionada) a partir da imagem original

$imagem_orig = ImageCreateFromJPEG($imagem);

//pegamos a altura e a largura da imagem original

$pontoX = ImagesX($imagem_orig);

$pontoY = ImagesY($imagem_orig);

//Criamos a imagem redimensionada com a funcao ImageCreateTrueColor para suportar um grande numero de cores

$imagem_fin = ImageCreateTrueColor($largura, $altura);

//copiamos o conteudo da imagem original e passamos para o espaco reservado a redimencao

ImageCopyResampled($imagem_fin, $imagem_orig, 0, 0, 0, 0, $largura+1, $altura+1, $pontoX, $pontoY);

//Salva a imagem

ImageJPEG($imagem_fin, $imagem_gerada);

//Libera a Memoria

ImageDestroy ($imagem_orig);

ImageDestroy ($imagem_fin);

?>

Adapte o script acima à sua necessidade, com isso com certeza voce vai conseguir redimensionar as suas imagens!!!

Fui!

Link para o comentário
Compartilhar em outros sites

  • 0

ai vai uma ajudinha :)

$_FILES['file']['tmp_name'], -> aqui vai ser resgatado do campo file

$novoarquivo -> caminho do arquivo

ai esta o que você vai presizar mudar , divirta-se :)

<?
$maxLarg = "200";    //    Max Width 
$maxAlt = "200";    //    Max Height 
$maxTam = "400";    //    Max Size (Kbytes); 
$mimeImg = "png";    //    Mime Type to save imagefiles 
$novoarquivo = "../teste/";

treat_image($_FILES['file']['tmp_name'],$novoarquivo);

function treat_image($filename,$destImage){ 


  if (!is_file($filename) || is_file($destImage)) return false; 
  if ($destImage===FALSE) $destImage=$filename; 
    global $maxLarg; 
    global $maxAlt; 
    global $maxTam; 
    global $mimeImg; 
    list($width, $height, $type, $attr) = getimagesize($filename); // pegando os atributos 
    $percent = min(round(($maxLarg / $width),2),round(($maxAlt/$height),2),1); // verificando se a imagem 
    // já não tem um tamanho que seja desnecessário intervenção 

    $newwidth = floor($width * $percent); // Pegando a nova largura proporcional para comparar posteriormente 
    $newheight = floor($height * $percent); // O mesmo que a largura só que para a altura 
    switch ($type) { 
/* Mime Types possíveis 
1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM  
*/ 
               case 2 : $source  = imagecreatefromjpeg ($filename); 
                            break; 
                   case 1 : $source  = imagecreatefromgif  ($filename); 
                             break; 
                   case 3 : $source  = imagecreatefrompng  ($filename); 
                             break; 
            // case 6 : // Windows Bitmap. Pode-se incluir uma chamada de conversao aqui 
                   default    : $stop = true; 
                      break; 
           } 

    // Load 
    $dest = imagecreatetruecolor($newwidth, $newheight); 

    // Resize 
    imagecopyresized($dest, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

    // Output 
    switch($mimeImg){ 
      case "gif":imagegif($dest, preg_replace("@\.\w+$@","",$destImage).".gif" ); 
      case "png":imagepng($dest, preg_replace("@\.\w+$@","",$destImage).".png" ); 
      case "jpg":imagejpeg($dest, preg_replace("@\.\w+$@","",$destImage).".jpg" ); 
    }        
       imagedestroy($source);     
       imagedestroy($dest); 
    return preg_replace("@\.\w+$@","",basename($destImage) ).".$mimeImg"; 
} 
?>

Link para o comentário
Compartilhar em outros sites

  • 0

ai vai uma ajudinha :)

$_FILES['file']['tmp_name'], -> aqui vai ser resgatado do campo file

$novoarquivo -> caminho do arquivo

ai esta o que você vai presizar mudar , divirta-se :)

<?
$maxLarg = "200";    //    Max Width 
$maxAlt = "200";    //    Max Height 
$maxTam = "400";    //    Max Size (Kbytes); 
$mimeImg = "png";    //    Mime Type to save imagefiles 
$novoarquivo = "../teste/";

treat_image($_FILES['file']['tmp_name'],$novoarquivo);

function treat_image($filename,$destImage){ 


  if (!is_file($filename) || is_file($destImage)) return false; 
  if ($destImage===FALSE) $destImage=$filename; 
    global $maxLarg; 
    global $maxAlt; 
    global $maxTam; 
    global $mimeImg; 
    list($width, $height, $type, $attr) = getimagesize($filename); // pegando os atributos 
    $percent = min(round(($maxLarg / $width),2),round(($maxAlt/$height),2),1); // verificando se a imagem 
    // já não tem um tamanho que seja desnecessário intervenção 

    $newwidth = floor($width * $percent); // Pegando a nova largura proporcional para comparar posteriormente 
    $newheight = floor($height * $percent); // O mesmo que a largura só que para a altura 
    switch ($type) { 
/* Mime Types possíveis 
1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM  
*/ 
               case 2 : $source  = imagecreatefromjpeg ($filename); 
                            break; 
                   case 1 : $source  = imagecreatefromgif  ($filename); 
                             break; 
                   case 3 : $source  = imagecreatefrompng  ($filename); 
                             break; 
            // case 6 : // Windows Bitmap. Pode-se incluir uma chamada de conversao aqui 
                   default    : $stop = true; 
                      break; 
           } 

    // Load 
    $dest = imagecreatetruecolor($newwidth, $newheight); 

    // Resize 
    imagecopyresized($dest, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

    // Output 
    switch($mimeImg){ 
      case "gif":imagegif($dest, preg_replace("@\.\w+$@","",$destImage).".gif" ); 
      case "png":imagepng($dest, preg_replace("@\.\w+$@","",$destImage).".png" ); 
      case "jpg":imagejpeg($dest, preg_replace("@\.\w+$@","",$destImage).".jpg" ); 
    }        
       imagedestroy($source);     
       imagedestroy($dest); 
    return preg_replace("@\.\w+$@","",basename($destImage) ).".$mimeImg"; 
} 
?>

Esses scripts não diminuem a qualidade? :unsure:

Link para o comentário
Compartilhar em outros sites

  • 0

eu não consegui por o script acima a funcionar, alguém poderia me ajudar? :(

<?
$maxLarg = "200";    //    Max Width 
$maxAlt = "200";    //    Max Height 
$maxTam = "400";    //    Max Size (Kbytes); 
$mimeImg = "png";    //    Mime Type to save imagefiles 
$novoarquivo = "fotos/";

treat_image($_FILES['file']['tmp_name'],$novoarquivo);

function treat_image($filename,$destImage){ 


  if (!is_file($filename) || is_file($destImage)) return false; 
  if ($destImage===FALSE) $destImage=$filename; 
    global $maxLarg; 
    global $maxAlt; 
    global $maxTam; 
    global $mimeImg; 
    list($width, $height, $type, $attr) = getimagesize($filename); // pegando os atributos 
    $percent = min(round(($maxLarg / $width),2),round(($maxAlt/$height),2),1); // verificando se a imagem 
    // já não tem um tamanho que seja desnecessário intervenção 

    $newwidth = floor($width * $percent); // Pegando a nova largura proporcional para comparar posteriormente 
    $newheight = floor($height * $percent); // O mesmo que a largura só que para a altura 
    switch ($type) { 
/* Mime Types possíveis 
1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM  
*/ 
               case 2 : $source  = imagecreatefromjpeg ($filename); 
                            break; 
                   case 1 : $source  = imagecreatefromgif  ($filename); 
                             break; 
                   case 3 : $source  = imagecreatefrompng  ($filename); 
                             break; 
            // case 6 : // Windows Bitmap. Pode-se incluir uma chamada de conversao aqui 
                   default    : $stop = true; 
                      break; 
           } 

    // Load 
    $dest = imagecreatetruecolor($newwidth, $newheight); 

    // Resize 
    imagecopyresized($dest, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 

    // Output 
    switch($mimeImg){ 
      case "gif":imagegif($dest, preg_replace("@\.\w+$@","",$destImage).".gif" ); 
      case "png":imagepng($dest, preg_replace("@\.\w+$@","",$destImage).".png" ); 
      case "jpg":imagejpeg($dest, preg_replace("@\.\w+$@","",$destImage).".jpg" ); 
    }        
       imagedestroy($source);     
       imagedestroy($dest); 
    return preg_replace("@\.\w+$@","",basename($destImage) ).".$mimeImg"; 
} 
?>

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...