Jump to content


Photo

Imagem Resize


  • Faça o login para participar
9 replies to this topic

#1 PaulinhoCurti

PaulinhoCurti

    Turista

  • Usuários
  • 36 posts
  • Sexo:Não informado
  • Localidade:São Paulo

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

#2 gulliva

gulliva

    Normal

  • Usuários
  • 62 posts
  • Sexo:Não informado
  • Localidade:Porto Alegre
  • Interesses:Dinheiro!

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

#3 PaulinhoCurti

PaulinhoCurti

    Turista

  • Usuários
  • 36 posts
  • Sexo:Não informado
  • Localidade:São Paulo

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()";

#4 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

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

#5 PaulinhoCurti

PaulinhoCurti

    Turista

  • Usuários
  • 36 posts
  • Sexo:Não informado
  • Localidade:São Paulo

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

#6 PaulinhoCurti

PaulinhoCurti

    Turista

  • Usuários
  • 36 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 24/07/2004, 22:45

Amigão... to postando o código fonte do meu script completo... da uma força ae pramim :D :D


<?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&iacute;cia foi adicionada com sucesso!
      <br>Voc&ecirc; est&aacute; 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&iacute;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&iacute;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> &nbsp;&nbsp;&nbsp; <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">&nbsp;&nbsp;<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&iacute;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&uacute;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>&nbsp;</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">&laquo;&laquo; Painel de Administra&ccedil;&atilde;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 &copy; 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 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

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

#8 PaulinhoCurti

PaulinhoCurti

    Turista

  • Usuários
  • 36 posts
  • Sexo:Não informado
  • Localidade:São Paulo

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 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

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

#10 thiagorsl

thiagorsl

    Ex-admin xD

  • Ex-Admins
  • 1151 posts
  • Sexo:Não informado
  • Localidade:Sampa
  • Interesses:http://sermaldito.amovoce.net/

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)

IPB Skin By Virteq