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)










