Ir para conteúdo

POWERED BY:

Arquivado

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

André Ricardo Theodoro

dimensionar imagem

Recommended Posts

Eae pessoal!!!

 

Estou usando este código para upload e gostaria de

definir o tamanho da imagem que deve ser 500X375

alguém sabe como posso fazer isto!? http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif

Meu código para upload é este:

<?php require_once('conecta.php'); ?> 
<?php 
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")  
{ 
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; 

  switch ($theType) { 
	case "text": 
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
	  break;	 
	case "long": 
	case "int": 
	  $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
	  break; 
	case "double": 
	  $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; 
	  break; 
	case "date": 
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
	  break; 
	case "defined": 
	  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
	  break; 
  } 
  return $theValue; 
}

$editFormAction = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
}  

// Aqui, pegamos o nome e o nome temporário da imagem enviada. 
$foto = $_FILES["foto_foto"]["name"]; 
$fotoTmp = $_FILES["foto_foto"]["tmp_name"];
$fotoSize = $_FILES["foto_foto"]["size"]; 

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
if($fotoSize >= "200000"){
   $erro =  "Arquivo é maior que o permitido.";
}
 if($erro != ""){
  echo "$erro";
  }
  else{ 
// Acrescentamos o campo: foto_data. 
// Em VALUES, alteramos o primeiro %s por '$foto'; e acrescentamos o comando NOW().
mysql_select_db($database); 
$insertSQL = sprintf("INSERT INTO w_floricultura (foto_foto, foto_titulo, foto_valor, foto_legenda, foto_data) VALUES ('$foto', %s, %s, %s, NOW())", 
					   GetSQLValueString($_POST['foto_titulo'], "text"),
					   GetSQLValueString($_POST['foto_valor'], "text"), 
					   GetSQLValueString($_POST['foto_legenda'], "text"));

$pasta = "fotos"; //Nome da pasta para onde vão os arquivos
		include ('funcoes.php'); 		
if (copy($fotoTmp,"$pasta/".$foto)){
echo("<font face=verdana size=1><b>Arquivo enviado com sucesso!</b></font>");
}else{
echo ("<font face=verdana size=1><b>Erro no envio do arquivo!</b></font>");
}

  mysql_select_db($database); 
  $Result1 = mysql_query($insertSQL) or die(mysql_error());
}
	$insertGoTo = "index.php"; 
	if (isset($_SERVER['QUERY_STRING'])) { 
	  $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
	  $insertGoTo .= $_SERVER['QUERY_STRING']; 
  } 
  header(sprintf("Location: %s", $insertGoTo));
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Postar foto</title> 
</head> 

<body> 

<h1>Postagem de fotos</h1> 

<html>
<body>
<form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1">
<table align="center">
		  <tr valign="baseline">
			<td width="106" align="right" nowrap>Foto:</td>
			<td width="375"><input name="foto_foto" type="file" size="32" />
		  </tr>
		  <tr valign="baseline">
			<td nowrap align="right">Nome:</td>
			<td><input type="text" name="foto_titulo" value="" size="32" /></td>
		  </tr>
		  <tr valign="baseline">
			<td nowrap align="right">Valor:</td>
			<td><input type="text" name="foto_valor" value="" size="32" /></td>
		  </tr>
		  <tr valign="baseline">
			<td nowrap align="right" valign="top">Descrição:</td>
			<td><textarea name="foto_legenda" cols="50" rows="5"></textarea>
			</td>
		  </tr>
		  <tr valign="baseline">
			<td nowrap align="right">Dimensionar foto:</td>
			<td>	  <input name="dimensao" type="radio" value="V" checked="CHECKED" />
			  Vertical 
			  <input name="dimensao" type="radio" value="H" />
		Horizontal</td></tr>
		  <tr valign="baseline">
			<td height="27" align="right" nowrap> </td>
			<td><input name="submit" type="submit" value="Postar Foto" /></td>
		  </tr>
		  </table>
		  <input type="hidden" name="MM_insert" value="form1">
</form>
</body>
</html>

Fico no aguardo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para qualquer imagem ter exatamente esta dimensão, só colocando diretamente na tag <img>.

 

Normalmente, o redimensionamento é feito baseado em tamanhos proporcionais.

 

[]'s ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu consegui fazr funcionar!

Está dimensionando qualquer imagem!!

 

Este é o código:

<?php require_once('conecta.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")  
{ 
  $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue; 

  switch ($theType) { 
	case "text": 
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
	  break;	 
	case "long": 
	case "int": 
	  $theValue = ($theValue != "") ? intval($theValue) : "NULL"; 
	  break; 
	case "double": 
	  $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL"; 
	  break; 
	case "date": 
	  $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; 
	  break; 
	case "defined": 
	  $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; 
	  break; 
  } 
  return $theValue; 
} 

$editFormAction = $_SERVER['PHP_SELF']; 
if (isset($_SERVER['QUERY_STRING'])) { 
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); 
} 
$foto = $_FILES["imagem"]["name"]; 
$fotoTmp = $_FILES["imagem"]["tmp_name"];
$fotoSize = $_FILES["imagem"]["size"];
$id_menu = $_POST['menu'];
$tipoproduo = $_POST['produto'];
$nome = $_POST['nome'];
$descricao = $_POST['descricao'];
$preco = $_POST['valor'];
$dimenssao = $_POST['dimenssao'];
$destaque = $_POST['status'];

/*if($fotoSize >= "81920"){
   $erro =  "<h1>Arquivo é maior que o permitido.</h1>";
}
 if($erro != ""){
  echo "$erro";
  }
  else{ */
mysql_select_db($database); 
$foto  = "imagem".time().".jpg";
$insertSQL = sprintf("INSERT INTO teste_produtos (id_menu, tipoproduto, nome, descricao, foto, preco, destaque) 
			 VALUES ('$id_menu', '$tipoproduto', '$nome', '$descricao', '$foto', '$preco', '$destaque')");
 
 // Função que cria a imagem, não trabalharemos com upload. 
function geraImg($img, $max_x, $max_y, $imgNome) { 
	//pega o tamanho da imagem ($original_x, $original_y) 
	list($width, $height) = getimagesize($img);
	$original_x = $width;//largura	
	$original_y = $height; //altura
	// se a largura for maior que altura acho a porcentagem   
	if($original_x > $original_y) { 
	   $porcentagem = (100 * $max_x) / $original_x;	   
	} 
	else { 
	   $porcentagem = (100 * $max_y) / $original_y;   
	} 
	$tamanho_x = $original_x * ($porcentagem / 100); 
	$tamanho_y = $original_y * ($porcentagem / 100);
	$dimensao = $_POST["dimensao"];
		if ($dimensao=='H'){
		  $tamanho_x= 500;
		  $tamanho_y= 375;
		  }elseif ($dimensao=='V'){
		  $tamanho_y= 500;
		  $tamanho_x= 375;} 		
	$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y); 
	$image = imagecreatefromjpeg($img); 
	imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height); 
	return imagejpeg($image_p, $imgNome, 100);
  
// Chama a imagem, passando os parâmetros a ela.
geraImg($fotoTmp, 500, 375, "images/".$foto); }
 $result = mysql_query($insertSQL) or die(mysql_error());
 if($result)
	{
		echo "<h1>Cadastro realizado com sucesso</h1>";
		echo "Foto inserida com sucesso!";
	}
 else
	 {
	  echo "<h1>Erro no cadastro!</h1>";
	  echo "A foto não foi inserida com sucesso!";
	 }
//}
?>

O problema é q ele aumenta o tamanho da imagem em kb!!!!

 

Alguém sabe uma forma q eu possa fazr para q o tamanho da imagem naum aumente?

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.