Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

carolina

redimensionar imagem

Recommended Posts

Tenho um sistema de upload de imagem.Gostaria de saber como faço para gerar e gravar no servidor um thumbnail dessa imagem que foi feito upload?Ou me digam somente como faço para gravar no servidor o thumb dessa imagem.Aguardo qualquer ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Carol, tenho um código bacana...<?//imagem que vem do upload$imagem = "img/suaimagem.jpg";//**** configurações da miniatura ****$tamanho_fixo = "N"; // S ou N$largura_fixa = 192; // usado somente com tamanho fixo s$altura_fixa = 144; // usado somente com tamanho fixo s$percentual = 40; // usado somente com tamanho fixo n//monta o nome do arquivo resultante$arquivo_miniatura = explode('.', $imagem);$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";//lê a imagem de origem e obtém suas dimensões$img_origem = ImageCreateFromJPEG($imagem);$origem_x = ImagesX($img_origem);$origem_y = ImagesY($img_origem);//se não for tamanho fixo, calcula as dimensões da miniaturaif($tamanho_fixo=="S"){$x = $largura_fixa;$y = $altura_fixa;}else{$x = intval ($origem_x * $percentual/100);$y = intval ($origem_y * $percentual/100);}//cria a imagem final que vai conter a miniatura$img_final = ImageCreateTrueColor($x,$y);//copia a imagem original redimensionada para dentro da imagem finalImageCopyResampled($img_final, $img_original, 0, 0, 0, 0, $x+1, $y+1, $origem_x, $origem_y);//salva o arquivoImageJPEG($img_final, $arquivo_miniatura);É isso ae, qualqué duvida, tamo ae

Compartilhar este post


Link para o post
Compartilhar em outros sites

utilizei seu código porém nada feito.acho q o problema está no meu servidor.já testei outros códigos para obter esse efeito e nada aconteceu.se alguém souber de algo me ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste ae algum script que você testou mas não deu pra gente comparar as possibilidades e o que pode estar dando errado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Carol ;)

 

Tenho um solução perfeita pra você. É um script que peguei nas minhas andanças pela internet.

 

O script faz thumbnails temporárias, ou seja, você copia o arquivo no tamanho normal para o servidor, e na hora de mostrá-lo, o script automaticamente cria uma miniatura em tamanho proporcional ao da foto :D Lindo né?

 

Carreguei o arquivo pro meu servidor.

 

Aqui está o Link. O arquivo tem 70 kb.

 

Espero ter ajudado amiga,

 

Um abraço http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é o código que estou utilizando:Preciso muito que isso funcione.Me ajudem.<?php $marca = $_POST['marca']; $peca = $_POST['peca']; $sem_img = $_POST['sem_img']; $arquivo = $_FILES['file']['name']; $diretorio = 'xxxx.com.br/sistema/fotos/'; $diretorio2 = 'xxxx.com.br/sistema/fotos/thumbnail/'; $origem = $_FILES['file']['tmp_name']; //Confere se a variável está vazia if (empty($arquivo)) { $img = 'http://www.xxxx.com.br/sistema/fotos/indisponivel.jpg'; mysql_select_db($database, $con); $query_Recordset2 = "INSERT INTO pecas (id_marca, peca, img) VALUES ('$marca', '$peca', '$img')"; $Recordset2 = mysql_query($query_Recordset2, $con) or die(mysql_error()); echo '<table width=750 border=0 cellspacing=0 cellpadding=0> <tr> <td class=f8n>Peça ou acessório cadastrado com sucesso.</td> </tr> <tr height=25> <td class=f8n><a href=java script:history.back(); class=lnk_azulb>clique aqui para voltar ao formulário.</a></td> </tr> </table>'; exit; //Checando se a variável é .jpg ou .jpeg }else{ if(!preg_match("/\.(jpg|jpeg|JPG|JPEG)$/",$arquivo)){ echo '<table width=750 border=0 cellspacing=0 cellpadding=0> <tr> <td class=f8n>Arquivo em formato inválido! A imagem deve ser jpg, jpeg. Envie outro arquivo.</td> </tr> <tr height=25> <td class=f8n><a href=java script:history.back(); class=lnk_azulb>clique aqui para voltar ao formulário.</a></td> </tr> </table>'; exit; }else{ mysql_select_db($database, $con); $query_Recordset1 = "SELECT * FROM pecas WHERE peca = '$peca'"; $Recordset1 = mysql_query($query_Recordset1, $con) or die(mysql_error()); $row_Recordset1 = mysql_fetch_assoc($Recordset1); $totalRows_Recordset1 = mysql_num_rows($Recordset1); if ($row_Recordset1['peca'] == $peca) { $peca = $row_Recordset1['peca']; echo '<table width=750 border=0 cellspacing=0 cellpadding=0> <tr> <td class=f8n>Esta peça ou acessório já está cadastrado.</td> </tr> <tr height=25> <td class=f8n><a href=java script:history.back(); class=lnk_azulb>clique aqui para voltar ao formulário.</a></td> </tr> </table>'; exit; }else{ // Gera um nome único para a imagem $arquivo = md5(uniqid(time())) . "." . $ext[1]; //Faz o upload da imagem move_uploaded_file($origem, $diretorio .$arquivo); //imagem que vem do upload$imagem = $arquivo;//**** configurações da miniatura ****$tamanho_fixo = "N"; // S ou N$largura_fixa = 192; // usado somente com tamanho fixo s$altura_fixa = 144; // usado somente com tamanho fixo s$percentual = 40; // usado somente com tamanho fixo n//monta o nome do arquivo resultante$arquivo_miniatura = explode('.', $imagem);$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";//lê a imagem de origem e obtém suas dimensões$img_origem = ImageCreateFromJPEG($imagem);$origem_x = ImagesX($img_origem);$origem_y = ImagesY($img_origem);//se não for tamanho fixo, calcula as dimensões da miniaturaif($tamanho_fixo=="S"){$x = $largura_fixa;$y = $altura_fixa;}else{$x = intval ($origem_x * $percentual/100);$y = intval ($origem_y * $percentual/100);}//cria a imagem final que vai conter a miniatura$img_final = ImageCreateTrueColor($x,$y);//copia a imagem original redimensionada para dentro da imagem finalImageCopyResampled($img_final, $img_original, 0, 0, 0, 0, $x+1, $y+1, $origem_x, $origem_y);//salva o arquivoImageJPEG($img_final, $arquivo_miniatura); $img = "http://www.xxxx.com.br/sistema/fotos/$arquivo"; mysql_select_db($database, $con); $query_Recordset2 = "INSERT INTO pecas (id_marca, peca, img) VALUES ('$marca', '$peca', '$img')"; $Recordset2 = mysql_query($query_Recordset2, $con) or die(mysql_error()); echo '<table width=750 border=0 cellspacing=0 cellpadding=0> <tr> <td class=f8n>Peça ou acessório cadastrado com sucesso.</td> </tr> <tr height=25> <td class=f8n><a href=fotos.php class=lnk_azulb>clique aqui para voltar ao formulário.</a></td> </tr> </table>'; exit; } } } mysql_free_result($Recordset1); mysql_free_result($Recordset2); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carol, o Server consegue fazer o upload da imagem??? Tente ver nas configurações do server de hospedagem, sei lá o painel de controle, se tu pode fazer upload e criar imagens dinamicamente...Pelo código, creio que tá certo... mas, por acaso, ele retorna alguma mensagem de erro???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste o código que te mandei, só ele num programa separado, se esse código não rodar é porque o server não aceita a criação de imagens dinamicamente... Pode testar funciona no meu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonas_ti,consegui redimensionar a imagem utilizando este código:<?php// File and new size$filename = 'rsr_barros_bg.jpg';$percent = 0.3;// Content typeheader('Content-type: image/jpeg');// Get new sizeslist($width, $height) = getimagesize($filename);$newwidth = $width * $percent;$newheight = $height * $percent;// Load$thumb = imagecreate($newwidth, $newheight);$source = imagecreatefromjpeg($filename);imageantialias($source, true);imagealphablending($source, true);// ResizeImageCopyResampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);// Outputimagejpeg($thumb, null, 100);?>Agora só preciso saber como faço para salvar a imagem redimensionada num diretório especificado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao invés de NULL coloque o caminho com o nome da imagem!!imagejpeg($thumb, null, 100);fica assim...imagejpeg($thumb, "img/imagem.jpg", 100);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.