
Imagem Resize
Started By PaulinhoCurti, 24/07/2004, 20:51
9 replies to this topic
#1
Posted 24/07/2004, 20:51
Olá.. Alguém conhece um script em php que mude o tamanho da imagem automaticamente quando ela é enviada ao servidor através de um formulario de envio ?? Tipo.. eu posto uma imagem em tamanho grande e ela é convertida automaticamente no tamanho que eu quiser. Preciso para transformar uma CÓPIA da imagem enviada em thumbnails...
Tem que ser em php
Tem que ser em php
#2
Posted 24/07/2004, 21:20
PHP |
<?php function thumbnail($img){ $copia = imagecreatefromjpeg($img); $nova = imagecreatetruecolor(80,80); imagecopyresampled($nova,$copia,0,0,0,0,80,80,imagesx($copia),imagesy($copia)); if(imagejpeg($nova,'pasta_thumbs/'.$img,95)){ return true; }else{ return false; } } ?> |
Esse é em exemplo bem simples...Ele cria só uma imagem 80x80...
E cara, em vez de usar imagecopyresized use imagecopyresampled...
É melhorzin...E é só por no teu scrip a seguinte linha: thumbnail('imagem.jpg');
FLW!
Galeria De Imagens COMPLETA E FREEWARE!
http://agaleria.clic3.net
http://agaleria.clic3.net
#3
Posted 24/07/2004, 22:26
Tem como vc aplicar no meu script por favor ???
outro detalhe: terá uma celula na tabela com o nome da imagem thumbnail para que eu possa postá-la no html separadamente.... um campo só pra imagem que for gerada.... meu script é esse:
if(isset($_POST['envia'])){
$titulo = $_POST['titulo'];
$fonte = $_POST['fonte'];
$email = $_POST['email'];
$conteudo = $_POST['conteudo'];
$categoria = $_POST['categoria'];
$imagem_nome = $_FILES["imagem"]["name"];
$imagem_temp = $_FILES["imagem"]["tmp_name"];
$envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome);
$sql = "INSERT INTO regionalnews SET
ID='$id',
titulo='$titulo',
fonte='$fonte',
email='$email',
conteudo='$conteudo',
categoria='$categoria',
imagem_nome='$imagem_nome',
imagem_temp='$imagem_temp',
data=CURDATE(),
tempo=CURTIME()";
outro detalhe: terá uma celula na tabela com o nome da imagem thumbnail para que eu possa postá-la no html separadamente.... um campo só pra imagem que for gerada.... meu script é esse:
if(isset($_POST['envia'])){
$titulo = $_POST['titulo'];
$fonte = $_POST['fonte'];
$email = $_POST['email'];
$conteudo = $_POST['conteudo'];
$categoria = $_POST['categoria'];
$imagem_nome = $_FILES["imagem"]["name"];
$imagem_temp = $_FILES["imagem"]["tmp_name"];
$envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome);
$sql = "INSERT INTO regionalnews SET
ID='$id',
titulo='$titulo',
fonte='$fonte',
email='$email',
conteudo='$conteudo',
categoria='$categoria',
imagem_nome='$imagem_nome',
imagem_temp='$imagem_temp',
data=CURDATE(),
tempo=CURTIME()";
#4
Posted 24/07/2004, 22:34
PHP |
<?php function thumbnail($img){ $copia = imagecreatefromjpeg($img); $nova = imagecreatetruecolor(80,80); imagecopyresampled($nova,$copia,0,0,0,0,80,80,imagesx($copia),imagesy($copia)); if(imagejpeg($nova,'pasta_thumbs/'.$img.'menor',95)){ return true; }else{ return false; } } if(isset($_POST['envia'])){ $titulo = $_POST['titulo']; $fonte = $_POST['fonte']; $email = $_POST['email']; $conteudo = $_POST['conteudo']; $categoria = $_POST['categoria']; $imagem_nome = $_FILES["imagem"]["name"]; $imagem_temp = $_FILES["imagem"]["tmp_name"]; $envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome); $sql = "INSERT INTO regionalnews VALUES id='$id', titulo='$titulo', fonte='$fonte', email='$email', conteudo='$conteudo', categoria='$categoria', imagem_nome='$imagem_nome', imagem_temp='$imagem_temp', data=CURDATE(), tempo=CURTIME()"; thumbnail($imagem_temp); ?> |
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#5
Posted 24/07/2004, 22:38
Ok amigo, mas em qual célula da tabela foi gravado o nomedothumb.jpg e em qual pasta a thumbnail foi despejada??
eu preciso do nome do arquivo gravada em uma coluna da tabela para poder inserir ela no html depois.
vale lembrar que a original deverá prevalecer na pasta imagens
eu preciso do nome do arquivo gravada em uma coluna da tabela para poder inserir ela no html depois.
vale lembrar que a original deverá prevalecer na pasta imagens
#6
Posted 24/07/2004, 22:45
Amigão... to postando o código fonte do meu script completo... da uma força ae pramim
UM ABRAÇÃO


<?php $pasta = "../imagens"; // Coloque o caminho da pasta ex: /imagens/usuarios include("../versao.inc"); include("verifica.php"); ?> <html> <head> <title><?php echo $versao; ?> - Adicionar Noticia</title> <LINK href="stilo.css" type="text/css" rel="stylesheet"> <LINK href="../../java/format.css" type="text/css" rel="stylesheet"> <script language="JavaScript"> <!-- function formCheck(formobj){ //1) Enter name of mandatory fields var fieldRequired = Array("titulo", "conteudo"); //2) Enter field description to appear in the dialog box var fieldDescription = Array("titulo", "conteudo"); //3) Enter dialog message var alertMsg = "O(s) campo(s) abaixo(s) é\\são obrigatório(s):\n"; var l_Msg = alertMsg.length; for (var i = 0; i < fieldRequired.length; i++){ var obj = formobj.elements[fieldRequired[i]]; if (obj){ switch(obj.type){ case "select-one": if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == ""){ alertMsg += " - " + fieldDescription[i] + "\n"; } break; case "select-multiple": if (obj.selectedIndex == -1){ alertMsg += " - " + fieldDescription[i] + "\n"; } break; case "text": case "textarea": if (obj.value == "" || obj.value == null){ alertMsg += " - " + fieldDescription[i] + "\n"; } break; default: if (obj.value == "" || obj.value == null){ alertMsg += " - " + fieldDescription[i] + "\n"; } } } } if (alertMsg.length == l_Msg){ return true; }else{ alert(alertMsg); return false; } } //--> </script> <script language="JavaScript"> //redirecionamento de páginas redirTime = "3000"; //Tempo redirURL = "regional_adicionar.php"; //url function redirTimer(){ self.setTimeout("self.location.href = redirURL;",redirTime);} </script> </head> <?php //Se a variavel envia for setada if(isset($_POST['envia'])): require("../conexao.inc"); echo("<body onLoad=\"redirTimer()\">"); echo("<font face=\"Verdana,Arial,Helvetica,sans-serif\" size=\"2\" color=\"#000000\">"); //Conecta-se ao mysql $conexao = @mysql_connect($host, $user, $pass); if(!$conexao){ die("Impossível conectar-se ao mysql...<br>"); } //Seleciona o banco de dados if(! @mysql_select_db($db_news)){ die("Impossível conectar-se com o banco de dados: " . $db_super_news . '<br>'); } //Se a notícia for submetida //Adicina ao banco de dados regionalnews if(isset($_POST['envia'])){ $titulo = $_POST['titulo']; $fonte = $_POST['fonte']; $email = $_POST['email']; $conteudo = $_POST['conteudo']; $categoria = $_POST['categoria']; $imagem_nome = $_FILES["imagem"]["name"]; $imagem_temp = $_FILES["imagem"]["tmp_name"]; $envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome); $sql = "INSERT INTO regionalnews SET ID='$id', titulo='$titulo', fonte='$fonte', email='$email', conteudo='$conteudo', categoria='$categoria', imagem_nome='$imagem_nome', imagem_temp='$imagem_temp', data=CURDATE(), tempo=CURTIME()"; if(@mysql_query($sql)){ echo("<p align=\"center\"><font color=\"#FF0000\" size=\"2\">A notícia foi adicionada com sucesso! <br>Você está sendo redirecionado para o formulario para postagem de outra noticia</font></p>"); } else { echo("<p align=\"center\"><font color=\"#FF0000\" size=\"2\">Erro ao adicionar a notícia " . mysql_error() . '</font></p><br>'); echo(!$envia_imagem)?"Erro ao enviar a Imagem para o Servidor!<br>":""; } } echo("</body></html>"); ?> <?php else: //Se a variavel envia não for setada ?> <body background="../../layout/fundo_pagina.gif"> <div align="center"> <center> <table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="700" id="AutoNumber1" height="491"> <tr> <td width="100%" bgcolor="#FFFFFF" height="491" valign="top"> <img border="0" src="../../layout/admin_news.gif" width="500" height="50"><font face="verdana" size="2"><b><a href=?acao=sair>Logout</a></b></font><br><br><p> <div align="center"> <center> <form action="<?=$_SERVER['PHP_SELF']?>" method="POST" enctype="multipart/form-data" onsubmit="return formCheck(this);"> <table border="0" cellpadding="0" cellspacing="1" width="688"> <tr> <td colspan="2" width="686"><p align="center"> <font face="Verdana, Arial, Helvetica, sans-serif" size="3" color="#006699"><b>Adicionar Notícia</b></font><br><b><font face="verdana" size="2" color="red">Atenção! Você está no DB Regional</font></b></p></td> </tr> <tr> <td colspan="2" width="686"><b> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#006699"> Categoria:</font></b></td> </tr> <tr> <td colspan="2" width="686"> <select name="categoria"> <option value="">Cidade</option> <option value="Cajamar">Cajamar</option> <option value="Caieiras">Caieiras</option> <option value="Mairiporã">Mairiporã</option> <option value="Campo Limpo Paulista">Campo Limpo</option> <option value="Franco da Rocha">Franco da Rocha</option> <option value="Santana de Parnaíba">Santana de Parnaíba</option> <option value="Jundiaí">Jundiaí</option> <option value="Jarinu">Jarinu</option> <option value="Barueri">Barueri</option> <option value="Pirapora do Bom Jesus">Pirapora Bom Jesus</option> <option value="Francisco Morato">Francisco Morato</option> </select> <font face="Verdana, Arial, Helvetica, sans-serif" color="#006699" size="1"><b>Imagem: </b></font><input type="file" name="imagem" size="15" style="font-family: Verdana; font-size: 8 pt; color: #000080; font-weight: bold"><font face="arial" size="2"> <b>ATENÇÃO!! </b>(Máximo <b>240</b> pixels de largura)</font></b></td> </tr> <tr> <td colspan="2" width="686"> <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" color="#006699" size="1"><b>Título:</b></font></p> </td> </tr> <tr> <td colspan="2" width="686"> <input type="text" maxlength="65" size="50" name="titulo" style="width:95%"></td> </tr> <tr> <td width="277"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#006699">Fonte de Informação:</font></b></td> <td width="408"> <b><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#006699"> E-mail do Contato da Fonte:</font></b></td> </tr> <tr> <td width="309"> <input type="text" maxlength="80" size="29" name="fonte"></td> <td width="377"> <input type="text" maxlength="80" size="29" name="email"></td> </tr> <tr> <td colspan="2" width="686"> <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" color="#006699" size="1"><b>Conteúdo</b></font></p> </td> </tr> <tr> <td colspan="2" width="686"> <textarea rows="10" name="conteudo" style="width:98%" cols="20"></textarea> </td> </tr> <tr> <td colspan="2" width="686"> <p align="center"> <input type="submit" name="envia" value="Postar" style="font-family: Verdana; font-size: 8 pt; color: #000080; font-weight: bold" /> | <input style="font-family: Verdana; font-size: 8 pt; color: #000080; font-weight: bold" type="reset" name="limpa" value="Limpar" \></form> </td> </tr> <tr> <td colspan="2" width="686"> <hr color="#000000"> </td> </tr> </table> </center> </div> <center> <a class="noticia" href="regional_adm_noticias.php" target="_self">«« Painel de Administração</a><br> <a class="noticia" href="adicionar.php" target="_self">Ir Para o Banco de Dados Mundial</a><br> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#000000"> Copyright © 2004 - Cajamar NET - Todos os direitos reservados - all rights reserved</font> </center> </td> </tr> </table> </center> </div> </body> </html> <?php endif; ?>
UM ABRAÇÃO
Edição feita por: PaulinhoCurti, 24/07/2004, 22:48.
#7
Posted 24/07/2004, 22:58
PHP |
<?php function thumbnail($img){ $copia = imagecreatefromjpeg($img); $nova = imagecreatetruecolor(80,80); imagecopyresampled($nova,$copia,0,0,0,0,80,80,imagesx($copia),imagesy($copia)); if(imagejpeg($nova,'pasta_thumbs/'.$img.'menor',95)){ return true; }else{ return false; } } if(isset($_POST['envia'])){ $titulo = $_POST['titulo']; $fonte = $_POST['fonte']; $email = $_POST['email']; $conteudo = $_POST['conteudo']; $categoria = $_POST['categoria']; $imagem_nome = $_FILES["imagem"]["name"]; $imagem_temp = $_FILES["imagem"]["tmp_name"]; $envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome); $sql = "INSERT INTO regionalnews VALUES id='$id', titulo='$titulo', fonte='$fonte', email='$email', conteudo='$conteudo', categoria='$categoria', imagem_nome='$imagem_nome', imagem_temp='$imagem_temp', data=CURDATE(), tempo=CURTIME()"; $insert = mysql_query($sql); //inserindo no BD thumbnail($imagem_temp); ?> |
Daí na hora que você quiser exibir uma determinada imagem referente a um ID x você coloca:
<?php /* conexao */ $s = mysql_query("SELECT * FROM tabela WHERE id='número'"); $x = mysql_fetch_array($s); echo "<img src=\"$x[imagem]\">"; //exibir imagem ?>
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#8
Posted 24/07/2004, 23:01
mas qual o nome da coluna que vai inserir no mysql ??
Edição feita por: PaulinhoCurti, 24/07/2004, 23:17.
#9
Posted 24/07/2004, 23:45
Veja assim amigão...
PHP |
<?php if(isset($_POST['envia'])){ $titulo = $_POST['titulo']; $fonte = $_POST['fonte']; $email = $_POST['email']; $conteudo = $_POST['conteudo']; $categoria = $_POST['categoria']; $imagem_nome = $_FILES["imagem"]["name"]; $imagem_temp = $_FILES["imagem"]["tmp_name"]; $envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome); $sql = "INSERT INTO regionalnews VALUES id='$id', titulo='$titulo', fonte='$fonte', email='$email', conteudo='$conteudo', categoria='$categoria', imagem_nome='$imagem_nome', imagem_temp='$imagem_temp', data=CURDATE(), tempo=CURTIME()"; move_uploaded_file($imagem_temp, "pasta/".$imagem_name); $imagem = $imagem_temp; header("Content-type: image/jpeg"); $im = imagecreatefromjpeg($imagem); //criar uma amostra da imagem original $largurao = imagesx($im);// pegar a largura da amostra $alturao = imagesy($im);// pegar a altura da amostra $alturad = 50; // definir a altura da miniatura em px $largurad = ($largurao*$alturad)/$alturao;// calcula a largura da imagem a partir da //altura da miniatura $nova = imagecreatetruecolor($largurad,$alturad);//criar uma imagem em branco imagecopyresized($nova,$im,0,0,0,0,$largurad,$alturad,$largurao,$alturao);//copiar //sobre a imagem em branco a amostra diminuindo conforma as especificações da miniatura $novaimg = imagejpeg($nova);//cria imagem jpeg move_uploaded_file($novaimg, "pasta/".$imagem_name."_menor"); imagedestroy($nova);//libera a memoria usada na miniatura imagedestroy($im);//libera a memoria usada na amostra } ?> |
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29
#10
Posted 24/07/2004, 23:51
Vamos lá 1º crie um campo na tabela thumb ai isso será o caminho do thumb 

PHP |
<?php function thumbnail($img){ $copia = imagecreatefromjpeg($img); $nova = imagecreatetruecolor(80,80); $texto=explode(".",$img); $img_nome=$texto[0]; $local='pasta_thumbs/'.$img_nome.'_menor.jpg'; imagecopyresampled($nova,$copia,0,0,0,0,80,80,imagesx($copia),imagesy($copia)); if(imagejpeg($nova,$local,95)){ return $local; }else{ return false; } } if(isset($_POST['envia'])){ $titulo = $_POST['titulo']; $fonte = $_POST['fonte']; $email = $_POST['email']; $conteudo = $_POST['conteudo']; $categoria = $_POST['categoria']; $imagem_nome = $_FILES["imagem"]["name"]; $imagem_temp = $_FILES["imagem"]["tmp_name"]; $local_thumb=thumbnail($imagem_temp); $envia_imagem= @move_uploaded_file($imagem_temp,$pasta."/".$imagem_nome); $sql = "INSERT INTO regionalnews VALUES id='$id', titulo='$titulo', fonte='$fonte', email='$email', conteudo='$conteudo', categoria='$categoria', imagem_nome='$imagem_nome', imagem_temp='$imagem_temp', thumb='$local_thumb', data=CURDATE(), tempo=CURTIME()"; $insert = mysql_query($sql); //inserindo no BD ?> |
Isso irá criar oh tuhumbs numa pasta pasta_thumbs e irá retornar o caminho da foto sem problema e irá inserir esse caminho no campo da tabela thumb

1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)