1,039 Vídeo Aulas

8971 Usuários

29,589 Respostas

Diego Perly Fazendo uma seleção perfeita no Photoshop
12 ago - Por Diego...
Long Shadow – 2 formas fáceis de criar com Illustrator
17 fev - Por Walter...
Estrutura de decisão: ”Escolha / Caso”
04 out - Por Eliu...
Criando actions e o formulário para cadastro junto com a...
15 mai - Por Marcio...
Fabio Beccari Efeito Pirógrafo com Photoshop
28 mai - Por Fabio...
Programação Orientada a Objetos com Java – Parte 10
30 abr - Por Douglas...
Criando Aplicações WEB com ASP.NET e C#
01 ago - Por Rodolfo...
Personalizando o Windows 8
30 jul - Por Renato...
Usando Conversão, Unidades de Medida e Outliner do Blender
15 fev - Por Ricardo...
Conceitos do Modeler e Primitivas 3D
25 fev - Por Paulo...
Kilderson Sena Segurança com PHP VI – CSRF
19 jan - Por Kilderson...
Aprendendo C : Conceitos Básicos
01 mar - Por Nícholas...
Animando com o Modificador SKIN com 3D Studio Max
16 mai - Por Claudio...
Organize seus Projetos com o Dropbox
23 jan - Por Rafael...
Solange Fagá Criando web album no Indesign Cs5
09 set - Por Solange...
Matheus Moura Namespaces no PHP
31 jan - Por Matheus...
Instalando os aplicativos em um celular real
28 out - Por Laercio...
Menu efeito Sanfona – parte 02
26 jul - Por Roberto...
Modelando Uma Montanha com 3D’s Max – Parte Final
24 dez - Por Vitor...
Modal de confirmação com JQuery
27 jul - Por Warlisson...
Protocolos de internet – Quais suas importâncias?
21 jan - Por Redação...
Gustavo Guanabara Aula 3: Formatação de Textos
14 ago - Por Gustavo...
Suavizando Sardas no PhotoShop
08 jul - Por Diogo...
Rene de Paula Jr O lado B da web 2.0: ouvir todos é não...
26 fev - Por Rene...

Redimensionamento de imagem dinâmico

Salve Amigos do Mxmasters, David CHC, em mais uma video aula de PHP. Nessa video aula iremos aprender a como redimensionar uma imagem vinda do formulário. Isso é muito util caso vocês desejem criar uma galeria de fotos.
Tenham uma boa Video aula.

  • http://webdinamic.net CIDICLEY CINTRA

    olá estou de volta com mais uma duvida, no meu sistema a largura fixa está de 800, o que vai fazer com que a imagem fique com 800×600, considerando que a imagem original estaria na proporção 4×3. ai fica perfeita.

    agora estou tendo problema quando o cliente cadastra uma imagem em uma proporção 3×4, isto é a imagem é mais alta do que larga. ai fica muito grande pois vai ficar com 800 de largura e mais de 1.000 de altura a minha ideia seria verificar se a altura é maior que a largura caso seja em vez de ter 800 como valor fixo para a nova imagem colocar 600. assim nao ficaria muito diferente.

    a duvida é: como pego pelo $_file[img] a largura e altura da imagem para fazer a verificação?

    abraço a todos espero que alguem possa ajudar.

    • http://www.mxmasters.com.br David CHC

      @CIDICLEY , vc pode usar o getimagesize, indicando o arquivo temporario.

      list($width, $height, $type, $attr) = getimagesize($_FILES['img']['tmp_name']);
       if($width > $height){
           //calcula de acordo com largura
      }else{
        //calcula de acordo com altura
      }
      
      

      Vc pode atribui a função mais um paramentro que é altura padrão. O calculo será utilizando uma regra de 3 simples, como foi feito para largura, basta fazer para altura.

  • http://webdinamic.net. Cidicley Cintra

    bom dia, tentei aqui mas nao consegui, estou usando o sistema neste site que estou terminando:

    http://www.masantosfotografias.com

    estou mandando um link a baixo com meu arquivo upload e minha função se puder der uma olhada para ver se teria como fazer esta condição dos tamanhos da imagem:

    http://www.joaoeudes.com.br/spanel.rar

    aguardo contato, isto é muito importante no momento se puder ajudar ficarei muito grato

    • http://www.mxmasters.com.br David CHC

      @Cidicley, vc já tem as dimensões da imagem, q vc recupera com imagesx e imagesy, e assim vc faz o calculo:

      
      function upload($tmp, $nome, $width, $height, $pasta){
      	$img = imagecreatefromjpeg($tmp); 
      	$x = imagesx($img);
      	$y = imagesy($img);
      	if($width >  $height){
      	 $largura = $width;
      	 $altura = ($largura*$y)/$x;
      	}else{
      	 $altura = $height;
      	 //faz o calculo
      	}
      	
      	$nova = imagecreatetruecolor($largura,$altura);
      	imagecopyresampled($nova, $img, 0, 0, 0, 0,$largura,$altura, $x, $y);
      	imagejpeg($nova, "$pasta/$nome");
      	imagedestroy($nova);
      	imagedestroy($img);
      	return($nome);
      }
      
  • http://webdinamic.net. Cidicley Cintra

    David, obrigado pela ajuda e prontidão, mas acho que vou desisitir disto pois ainda nao consegui e nao vou ficar lhe incomodando toda hora.

    usei a função a cima e dá este erro:

    Warning: Missing argument 5 for upload(), called in C:\wamp\www\estudio\spanel\portfolio_mult_foto_antes.php on line 40 and defined in C:\wamp\www\estudio\spanel\upload_func.php on line 1

    a linha tem: function upload($tmp, $nome, $width, $height, $pasta){

    mesmo assim obrigado e desculpe o incomodo, acho que vou ter que ensinar a tratar todas as imagens antes de fazer o upload.

    • http://www.mxmasters.com.br David CHC

      @Cidicley , eu acrescentei mais uma parametro que é a altura padrão, pq vc quer q se a largura for maior que altura, vc defini uma largura padrão, se for a altura maior q largura, vc defini uma altura padrão:

      $file = $_FILES['imagem'];
      upload($file['tmp_name'], $file['name'], 800, 600, 'uploads');
      
  • Melfre21

    Ola David cara assisto suas aulas e tenho dificuldade por ser iniciante em algumas
    EX 01: na aula de Query String como faço se tenho arquivos em PASTA diferentes

    EX 02: na aula de URL AMIGAVEL como faço para obter uma url desse tipo http://www.meusite.com.br/noticias/titulo-da-noticia.html e tambem paginação meusite.com.br/PAGE/3

    • http://www.mxmasters.com.br David CHC

      Sobre o primeiro, vc pode passar essa informação via URL, exemplo:

      ?pagina=noticia/list

      Depois é só separar e definir que o primeiro sempre será a pasta e o segundo o arquivo.

      Sobre o segundo. Nesse caso vc tem que gravar a URL amigavel no banco de dados, assim vc consegue resgatar a URL e fazer a pesquisa no banco de dados.

      Sobre a paginação, dá uma olhada em alguns comentarios acima q mostro uma maneira q acho interessante a paginação, usando a aglo assim:

      /noticias/page:3

  • Sethend
    • http://www.mxmasters.com.br David CHC

      No caso isso é na configuração do PHP, por padrão, vc estiver testando localmente, é configurado para 2MB, em hospedagem eles aumentam um pouco.

      Vc teria que modificar no arquivo php.ini :

      post_max_size = 20M
      upload_max_filesize = 20M

      • Sethend

        Nossa obrigado pela resposta rapida.
        segue o erro que aparece.
        Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6400 bytes) in E:wwwuntupload.php on line 23

  • Sethend
  • http://www.mxmasters.com.br David CHC

    No caso o tempo de executação passou o estipulado pelo PHP, tbm pode ser alterado, você pode tentar colocar no inicio do script : set_time_limit(0) , ou modificar no PHP max_execution_time

  • Murillo

    não acredito que eu fiquei mais de 1 ano procurando alguma forma de fazer upload com redimensionamento de imagem e é tão simples assim. Estou fazendo um site com upload de imagens e logo quando acabar quero fazer uma loja virtual. Mais enquanto isso vou estudar jquery porque só programação com refresh não agrada muito os usuários.

    • http://www.mxmasters.com.br David CHC

      Q murilo q aula pode te ajudar.

  • http://twitter.com/eerison erison

    muito bom, como sempre otimas video aulas.
    mas eu esto com u problema,

    tenho esse codico de uplod

    $imagem_f = $_FILES[‘imagem_f’];
    // Pega extensão da imagem
    preg_match(“/.(gif|bmp|png|jpg|jpeg){1}$/i”, $imagem_f[“name”], $ext);

    // Gera um nome único para a imagem
    $imagem_f2 = md5(uniqid(time())) . “.” . $ext[1];

    // Caminho de onde ficará a imagem
    $caminho_imagem = “../imagem/imagem_produto/” . $imagem_f2;
    // Faz o upload da imagem para seu respectivo caminho
    move_uploaded_file($imagem_f[“tmp_name”], $caminho_imagem);

    e queria redimensionar as imagens para não passa nem a largura e nem a autura de 800px como fasso?

  • http://www.mxmasters.com.br David CHC

    Basta vc resgatar as dimensões da imagem:

    list($largura, $altura) = getimagesize($imagem_f[‘tmp_name’]);

    Agora vc pode fazer a condição de largura e altura máxima

  • Rodrigo
  • João Marcos

    É possivel redimensionar uma imagem antes de fazer o upload dela com o PHP?

    Obs: assim o tempo de upload da imagem fica mais rápido.. estou construindo um site de imobiliária, porém o administrador faz upload de imagens de imóveis, só que ele tira fotos com uma camera de alta resolução, ai demora muito para enviar os arquivos, e sabe como é usuário, pensa que o site ta travado e acaba fechando e pensando que o problema é do site..

  • http://www.mxmasters.com.br David CHC

    João não tem como redimensionar antes. O q vc pode fazer para melhorar a experiencia do seu cliente, é colocar uma barra de progresso, vc pode utilizar o uploadify ( http://www.uploadify.com/ ), ou faz um truque com javascript: Pega gif animado de carregamento, e deixar ele ocultado, e atribuir uma ação no input para q ele mostre esse gif.

  • Kleber

    Ola David!

    Eu estou usando esse plugin e ele não redimensiona arquivos maiores que 2mb.
    O arquivo é enviado mas não é redimensionado e não sei o que fazer.
    Enviei um arquivo de 19mb e foi normal, porem não redimensionado.
    Eu verifiquei as configurações do php no servidor e estão assim:

    file_uploads ——————–>on
    upload_max_filesize ——–>64M
    post_max_size —————>64M
    max_input_time ————–>60
    max_execution_time ——>30

    Sera que tem uma luz no fim do túnel?

  • http://www.mxmasters.com.br David CHC

    E arquivos menores, ele redimensiona ?

    • Kleber

      Sim, redimensiona normal.
      Porem esqueci de mencionar que o plugin é o Uploadfy.

      • http://www.mxmasters.com.br David CHC

        E sem o uploadify, ele redimensiona , com imagens pesadas ?

        • Kleber

          Sim, mas não é o mesmo script, eu vou fazer novos teste e vou tentar mudar o script do uploadfy.
          As tuas perguntas responderam as minhas. Valeu.
          Mais uma pergunta, pelo fato do plugin uploadfy estar chamando o script php em background, poderia influenciar neste erro de redimensionamento?

  • http://www.mxmasters.com.br David CHC

    Kleber, não posso te afirma, quando usava , nunca influenciou nesse requisito.

  • vmolina

    David muito bom o tutorial. Está acontecendo uma coisa que ta me deixando maluco, quando pego uma imagem muito grande ex. 4500×3000 localhost redimensiona e envia o arquivo para a pasta desejada, mas no servidor web o procedimento não é realizado, sei que o problema é no servidor web, gostaria de saber se vc tem alguma idéia do que seja? desde já muito obrigado e parabens.

    • http://www.davidchc.com.br David CHC

      vmolina, porque no servidor o limite do tamanho de arquivo, e memória utilizado são mais limitados. Nesse caso você precisa verificar na sua hospedagem, se a possibilidade de realizar essas modificações.

  • eder bitten

    ola, bom otima explicação, mais eh o seguinte, como fazer para a imagem ir para uma pasta dentro do servidor, no local host funciona certinho no externo dah um um erro PHP Warning: imagejpeg() [function.imagejpeg]: Unable to open ” for writing: Permission denied in
    desde jah agradeço, abraço e parabéns vlw

    • http://www.davidchc.com.br David CHC

      Eder, é preciso dá permissão de escrita (777 ou 755) na pasta onde está sendo enviada as imagens

Projeto mantido por: