carolina 0 Denunciar post Postado Janeiro 18, 2005 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
jonas_ti 0 Denunciar post Postado Janeiro 18, 2005 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
carolina 0 Denunciar post Postado Janeiro 18, 2005 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
jonas_ti 0 Denunciar post Postado Janeiro 18, 2005 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
tiagomaia 0 Denunciar post Postado Janeiro 18, 2005 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
carolina 0 Denunciar post Postado Janeiro 19, 2005 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
jonas_ti 0 Denunciar post Postado Janeiro 19, 2005 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
carolina 0 Denunciar post Postado Janeiro 19, 2005 Consigo fazer o upload sim.Não retorna nenhuma mensagem de erro. Compartilhar este post Link para o post Compartilhar em outros sites
jonas_ti 0 Denunciar post Postado Janeiro 19, 2005 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
carolina 0 Denunciar post Postado Janeiro 19, 2005 Não funcionou. =( Compartilhar este post Link para o post Compartilhar em outros sites
jonas_ti 0 Denunciar post Postado Janeiro 19, 2005 Poxa sacanagem, tu tem acesso ao painel de controle do site? Veja lá se tu não tem que habilitar isso dae Compartilhar este post Link para o post Compartilhar em outros sites
carolina 0 Denunciar post Postado Janeiro 19, 2005 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
jonas_ti 0 Denunciar post Postado Janeiro 19, 2005 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
carolina 0 Denunciar post Postado Janeiro 19, 2005 Nada feito.Não funcionou. Compartilhar este post Link para o post Compartilhar em outros sites