[Script] Video aula Redimensionar Imagem com PHP

Seção para postar os scripts das video aulas, e dos membros do forum

[Script] Video aula Redimensionar Imagem com PHP

Mensagempor davidchc » Sáb Mai 30, 2009 5:31 pm

Códigos da video Redimensionar Imagem com PHP:

index.php

Código: Selecionar tudo
<?php
      if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
         $foto = $_FILES['foto'];
         if($foto['type'] == 'image/jpeg'){
            require("funcao/funcao_upload.php");
            $name = md5(uniqid(rand(), true)).".jpg";            
            Redimensionar($foto, $name, 150, "images");
         }   
      }
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Redimensionar Imagem</title>
</head>

<body>
<form method="post" action="" enctype="multipart/form-data">
   <label>Foto<input type="file" name="foto" /></label>
    <input type="submit" value="Enviar" />
    <input type="hidden" name="acao" value="cadastrar" />
</form>

</body>
</html>




funcao_upload.php

Código: Selecionar tudo
<?php
      function Redimensionar($imagem, $name, $largura, $pasta){
            $img = imagecreatefromjpeg($imagem['tmp_name']);
            $x   = imagesx($img);
            $y   = imagesy($img);
            $altura = ($largura * $y)/$x;
            $nova = imagecreatetruecolor($largura, $altura);
            imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
            imagejpeg($nova, "$pasta/$name");
            imagedestroy($img);
            imagedestroy($nova);
            return $name;
      }
   
?>


Caso vc tente usar na sua hospedagem, é necessário dá permissão de escrita na pasta onde será enviada a imagem.

Aqui está como listar a imagem.
listarimagens.php

Código: Selecionar tudo
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listar Imagens</title>
</head>

<body>
<?php
    /*nome da pasta onde está as imagens*/   
      $pasta = "images";
       /*recuperar as imagens e colocar em um array*/
   $imagens = glob("$pasta/{*jpg,*png,*gif}", GLOB_BRACE);
       /*percorre o array*/
        foreach($imagens as $img){
   /*Imprime a imagem*/   
          echo '<img src="'.$img.'" />';
   }
?>

</body>
</html>
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor juninhodias » Ter Jul 14, 2009 11:00 pm

Bom, primeiramente quero parabenizar pelo ótimo trabalho David, suas explicações são claras e objetivas, continue assim...

Fiquei com uma dúvida, pode parecer simples, mas me travou aqui. :)

Ao fazer o processo, o sistema me retornou o erro:

"Warning: imagesx(): supplied argument is not a valid Image resource in..."

Fiz o print_r e constatei q o tipo das imagens no meu PC é "image/pjpeg" e não "image/jpeg" conforme na aula. Como posso fazer a adaptação no sistema para resolver este problema?

Desde já, grato...
Junior
juninhodias
Novo membro
 
Mensagens: 4
Data de registro: Ter Jul 14, 2009 10:55 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor davidchc » Qua Jul 15, 2009 10:28 am

isso não tem problema, pode ser image/jpeg ou image/pjpeg. O erro q não tá passando a imagem criar para imagesx. Se vc pode na validacao fazer essa permissão:

Código: Selecionar tudo
if($foto['type'] == 'image/jpeg' || $foto['type'] == 'image/pjpeg' )


Confira com os codigos da função q postei, e compare com q vc fez, veja se tá igual.
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor juninhodias » Qua Jul 15, 2009 11:12 am

David, agora a função não é executada e não retorna nada.

Bom, tentei juntar as suas duas aulas (Redimensionar/Upload Multiplo), a seguir o codigo completo

Início de foto_cad.php
Código: Selecionar tudo
<?php

   require_once("verifica.php");

   include('conexao.php');   
      
   
   $id=$_REQUEST['id'];

   $cons_eventos = "SELECT * FROM eventos WHERE id = $id";
   $resu_eventos = mysql_query($cons_eventos);
   $nres_eventos = mysql_num_rows($resu_eventos);
   $row_eventos = mysql_fetch_array($resu_eventos); 
   
   if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
   
      $foto   =  $_FILES['foto'];
      $pasta  =  '../fotos/';
      $contar =  count($foto['name']);
      
      $ok = 0;
      $erro = 0;
      
      
      
         for($i = 0; $i < $contar; $i++){
      
            $nome  =  $foto['name'][$i];
            $tmp   =  $foto['tmp_name'][$i];
            
            if(!empty($nome)){
            
               if(move_uploaded_file($tmp,$pasta.$nome)){
               
                  $ok++;
                  
                  
                  
                  require("func_upload.php");

                  $name = md5(uniqid(rand(), true)).".jpg";
                  Redimensionar($foto, $name, 500, $pasta);
                  
                  
               
               }else{
               
                  $erro++;
               
               }
            
            
            }
      
         }
      
      
   
   }


?>



func_upload.php
<?php

function Redimensionar($imagem, $name, $largura, $pasta){

$img = imagecreatefromjpeg($imagem['tmp_name']);
$x = imagesx($img);
$y = imagesy($img);
$altura = ($largura*$y)/$x;

$nova = imagecreatetruecolor($largura, $altura);

imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);

imagejpeg($nova, "$pasta/$name");
imagedestroy($img);
imagedestroy($nova);

return $name;


}

?>


Grato,
juninhodias
Novo membro
 
Mensagens: 4
Data de registro: Ter Jul 14, 2009 10:55 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor davidchc » Qua Jul 15, 2009 11:31 am

Vc pode fazer assim:

Código: Selecionar tudo
    <?php

       require_once("verifica.php");
       include('conexao.php');   
       
       
       $id=$_REQUEST['id'];
       $cons_eventos = "SELECT * FROM eventos WHERE id = $id";
       $resu_eventos = mysql_query($cons_eventos);
       $nres_eventos = mysql_num_rows($resu_eventos);
       $row_eventos = mysql_fetch_array($resu_eventos);
       if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
          $foto   =  $_FILES['foto'];
          $pasta  =  '../fotos/';
        //se quiser fazer uma miniatura
        //$thumb = '../fotos/thumb/';
          $contar =  count($foto['name']);
      //permissão de arquivos
        $permissao = array('image/jpeg', 'image/jpg', 'image/pjpeg');
           require("func_upload.php");
           for($i = 0; $i < $contar; $i++){
                $nome =  $foto['name'][$i];
                $tmp  =  $foto['tmp_name'][$i];
            $type =  $foto['type'][$i];
                   if(!empty($nome) && in_array($type, $permissao)){
                   $name = md5(uniqid(rand(), true)).".jpg";
                  Redimensionar($foto, $name, 500, $pasta);
                  //se quiser fazer uma miniatura
                  //Redimensionar($foto, $name, 500, $thumb);
               }
            unset($nome);
            unset($type);
            unset($tmp);
            }
      }
?>

Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor juninhodias » Qua Jul 15, 2009 11:40 am

Deu o msm problema, mt estranho mano...
juninhodias
Novo membro
 
Mensagens: 4
Data de registro: Ter Jul 14, 2009 10:55 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor davidchc » Qua Jul 15, 2009 11:52 am

Vamos adaptar a função pra atribuimos o arquivo temporario direto

Código: Selecionar tudo
function Redimensionar($tmp, $name, $largura, $pasta){
            $img = imagecreatefromjpeg($tmp);
            $x = imagesx($img);
            $y = imagesy($img);
            $altura = ($largura*$y)/$x;
            $nova = imagecreatetruecolor($largura, $altura);
            imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
            imagejpeg($nova, "$pasta/$name");
            imagedestroy($img);
            imagedestroy($nova);
            return $name;

}


O arquivo completo:
Código: Selecionar tudo
    <?php

       require_once("verifica.php");
       include('conexao.php');   
       
       
       $id=$_REQUEST['id'];
       $cons_eventos = "SELECT * FROM eventos WHERE id = $id";
       $resu_eventos = mysql_query($cons_eventos);
       $nres_eventos = mysql_num_rows($resu_eventos);
       $row_eventos = mysql_fetch_array($resu_eventos);
       if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
          $foto   =  $_FILES['foto'];
          $pasta  =  '../fotos';
        //se quiser fazer uma miniatura
        //$thumb = '../fotos/thumb';
          $contar =  count($foto['name']);
      //permissão de arquivos
        $permissao = array('image/jpeg', 'image/jpg', 'image/pjpeg');
           require("func_upload.php");
           for($i = 0; $i < $contar; $i++){
                $nome =  $foto['name'][$i];
                $tmp  =  $foto['tmp_name'][$i];
            $type =  $foto['type'][$i];
                   if(!empty($nome) && in_array($type, $permissao)){
                   $name = md5(uniqid(rand(), true)).".jpg";
                  Redimensionar($tmp, $name, 500, $pasta);
                  //se quiser fazer uma miniatura
                  //Redimensionar($foto, $name, 500, $thumb);
               }
            unset($nome);
            unset($type);
            unset($tmp);
            }
      }
?>




tente agora
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor juninhodias » Qua Jul 15, 2009 6:01 pm

Agora foi!!!

Muito legal David, show de bola. Muito obrigado pela atenção!

Vc quebrou um galhao aqui...e deu p sacar direitinho...forte abraço, q Deus te abencoe!
juninhodias
Novo membro
 
Mensagens: 4
Data de registro: Ter Jul 14, 2009 10:55 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor davidchc » Qua Jul 15, 2009 6:13 pm

Blz, qualquer duvida é só postar
Avatar de usuário
davidchc
Veterano
 
Mensagens: 3135
Data de registro: Qua Ago 06, 2008 2:11 pm

Re: [Script] Video aula Redimensionar Imagem com PHP

Mensagempor webson » Ter Jul 28, 2009 12:04 pm

ola david, como faço para dar prmição a pasta imagem do mesu servidor? e para que serve o prin_r? falo garoto sucesso
webson
Novo membro
 
Mensagens: 19
Data de registro: Seg Jun 29, 2009 5:08 pm

Próximo

Retornar para Banco de Scripts (PHP)

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes