Ir para conteúdo

POWERED BY:

Arquivado

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

cassiano óliver

Upload e Resize

Recommended Posts

Pessoal,

to aqui há um bom tempo já tentando implementar num formulário de upload um script de redimensionamento de imagem...

já pesquisei, achei vários tópicos aqui mesmo no fórum, em outros fóruns em sites, mas não obtive sucesso...

 

o script do upload é esse:

<?php
$pasta = "arquivos/";
$arquivo = $_FILES["arquivo"];
$arquivo_nome = $arquivo["name"];
$caminho = $pasta . $arquivo_nome;
$upload = move_uploaded_file($arquivo["tmp_name"], $caminho);

if($upload) {
	echo "Arquivo enviado com sucesso!";
}
else {
	echo "Falha no upload...";
}
?>

o script que redimensiona é esse:

<?php
header("Content-type: image/jpeg");

# Informa a imagem a ser redimensionada
$img	  = imagecreatefromjpeg($_GET["imagem"]);

# Informações originais sobre a imagem
$largurao = imagesx ($img);
$alturao  = imagesy ($img);

# Verifica a largura original da imagem, se for maior que 300, atribui sua nova altura em 300px
$alturan  = 300;
$larguran = ($alturan * $largurao) / $alturao;

#Criando a nova imagem
$nova	 = imagecreatetruecolor ($larguran, $alturan);
imagecopyresized ($nova, $img, 0, 0, 0, 0, $larguran, $alturan, $largurao, $alturao);
imagejpeg ($nova, "", 90);
imagedestroy ($nova);
imagedestroy ($img);
?>

se alguém puder me ajudar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você quer redimensionar antes de salvar certo? Se sim, não use move_uploaded_file(), pois ela salvará a imagem original.

 

Faça o redimensionameto, usando o arquivo temporário (tmp_name) e salve a imagem final com imagejpeg() (ou gif ou png).

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim, quero redimensionar antes de enviá-la...

 

Faça o redimensionameto, usando o arquivo temporário (tmp_name) e salve a imagem final com imagejpeg() (ou gif ou png)

desculpe a ignorancia, mas como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw beraldo, tentei usar a função, mas to errando em algum lugar...

 

<?php
$imagem = $_FILES["imagem"];
$pasta = "imagens/";
$imagem_nome = $imagem["name"];
$caminho = $pasta . $imagem_nome;

function reduz_imagem($img, $max_x, $max_y, $nome_foto) { 
	list($width, $height) = getimagesize($img); 
	$original_x = $width; 
	$original_y = $height; 
	// se a largura for maior que altura 
	if($original_x > $original_y) { 
		$porcentagem = (100 * $max_x) / $original_x; 
	}
	// se a altura for maior que a largura
	else { 
		$porcentagem = (100 * $max_y) / $original_y; 
	} 
	$tamanho_x = $original_x * ($porcentagem / 100); 
	$tamanho_y = $original_y * ($porcentagem / 100); 
	$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, $nome_foto, 100); 
}
reduz_imagem($_FILES["imagem"]["tmp_name"], 640, 480, $caminho);

$upload = move_uploaded_file($imagem["tmp_name"], $caminho);

if($upload) {
	echo "Arquivo enviado com sucesso!";
}
else {
	echo "Falha no upload...";
}
?>

ta apenas "upando" a imagem, não está redimensionando...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não use move_uploaded_file(). imagejpeg() já está envando a imagem. Como você chamou move_uploaded_file(), esta função sobrepõe a imagem enviada por imagjpeg(). http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

nossa, era isso mesmo...

funcionou perfeitamente agora...

não sabia dessa função, vou pesquisar um pouco sobre ela...

 

agora uma dúvida...

imagando que a imagem a ser upada tenha mais que 2MB, ela não é enviada, pela questão do maximo para upload ser de 2MB...

mas no resize da imagem antes do upload, o peso dela não é reduzido?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses valores podem ser aumentados usando .htaccess. Há um tutorial recente sobre isso no sub-fórum de artigos. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Ao redimensionar a imagem, o tamanho em bytes diminui. Mas não sei se o PHP permite enviar uma imagem maior que o permitido, para processá-la, reduzindo-a. Tem que fazer um teste.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esses valores podem ser aumentados usando .htaccess. Há um tutorial recente sobre isso no sub-fórum de artigos.

vou dar uma olhada...

 

Ao redimensionar a imagem, o tamanho em bytes diminui. Mas não sei se o PHP permite enviar uma imagem maior que o permitido, para processá-la, reduzindo-a. Tem que fazer um teste.

teste aqui, redimensiona a imagem normalmente, mas se tiver mais que 2MB dá erro...

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.