Ir para conteúdo

POWERED BY:

Arquivado

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

joaogil

delimitar largura x comprimento imagem

Recommended Posts

Eu tenho um sistema de upload de imagem, e quero saber como delimitar a largura e o comprimento da imagem ?

 

Por ex.:

$max_width = 400px;

$max_height = 600px;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é isso não cara, é alguma função que verifica a largura (whidth) e a altura (heigth)

da imagem a ser 'subida'.

Eu encontrei essa função:

 

PHP

[*]

[*]getimagesize ()

[*]

 

Só que eu não sei direito como usá-la !!??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí achei outras funções para esse caso:

 

PHP

[*]imagesx() // retorna a largura da imagem identificada por image.

[*]imagesy() // retorna a altura da imagem identificada por image.

 

Eu acho que essas 2 funções são as + certas para esse meu código !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, pequei esse exemplo acho que aqui no fórum mesmo (não me lembro), mas acho que ele resolve o seu problema:

 

Iniciamos criando a página com o formulário de envio da imagem.Usaremos como nome de arquivo: "foto.html" <form action="upload.php" method="post"  enctype="multipart/form-data">Envie sua foto para o site! <input type="file" name="foto"><BR><input type="submit" value="Enviar Foto!"></form>Criamos agora, o arquivo "upload.php", que processa e verifica o upload da foto do usuário: <?$erro = $config = array();// Prepara a variável do arquivo$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;// Tamanho máximo do arquivo (em bytes)$config["tamanho"] = 106883;// Largura máxima (pixels)$config["largura"] = 350;// Altura máxima (pixels)$config["altura"]  = 180;// Formulário postado... executa as açõesif($arquivo){  	// Verifica se o mime-type do arquivo é de imagem	if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))	{		$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, 	  bmp, gif ou png. Envie outro arquivo";	}	else	{		// Verifica tamanho do arquivo		if($arquivo["size"] > $config["tamanho"])		{			$erro[] = "Arquivo em tamanho muito grande!   A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.   Envie outro arquivo";		}				// Para verificar as dimensões da imagem		$tamanhos = getimagesize($arquivo["tmp_name"]);				// Verifica largura		if($tamanhos[0] > $config["largura"])		{			$erro[] = "Largura da imagem não deve 	ultrapassar " . $config["largura"] . " pixels";		}		// Verifica altura		if($tamanhos[1] > $config["altura"])		{			$erro[] = "Altura da imagem não deve 	ultrapassar " . $config["altura"] . " pixels";		}	}		// Imprime as mensagens de erro	if(sizeof($erro))	{		foreach($erro as $err)		{			echo " - " . $err . "<BR>";		}		echo "<a href=\"foto.html\">Fazer Upload de Outra Imagem</a>";	}	// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...	else	{		// Pega extensão do arquivo		preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);		// Gera um nome único para a imagem		$imagem_nome = md5(uniqid(time())) . "." . $ext[1];		// Caminho de onde a imagem ficará		$imagem_dir = "fotos/" . $imagem_nome;		// Faz o upload da imagem		move_uploaded_file($arquivo["tmp_name"], $imagem_dir);		echo "Sua foto foi enviada com sucesso!";	}}?>1 - Você deve alterar as variáveis de configuração, especificando o tamanho e as dimensões máximas das imagens que você permitirá upload: // Tamanho máximo do arquivo (em bytes)$config["tamanho"] = 106883;// Largura máxima (pixels)$config["largura"] = 350;// Altura máxima (pixels)$config["altura"]  = 180;2 - Ao invés de fazer verificação da extensão do arquivo (se é .gif, .png, etc..), verifica-se o mime-type do arquivo, prevenindo assim de usuários mal-intencionados alterarem extensões de não imagens e fazerem o upload (ex: usuário tem um vírus com extensão .exe, altera a extensão para .jpg e faz o upload): // Verifica se o mime-type do arquivo é de imagemif(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"])){$erro[] = "Arquivo em formato inválido! 	A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";}3 - Verifica o tamanho do arquivo, para evitar que usuários mal-intencionados ou inexperientes, "scaneiem" alguma imagem e a salve em qualidade máxima, sendo assim de tamanho para mais de 1MB! // Verifica tamanho do arquivoif($arquivo["size"] > $config["tamanho"]){$erro[] = "Arquivo em tamanho muito grande! 	A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. 	Envie outro arquivo";}4 - Verifica então, as dimensões do arquivo. Para isso, usa-se a função getimagesize, que retorna um array onde o índice 0 é a largura e o índice 1 é a altura da imagem. Note que no argumento usado em getimagesize é usado o índice "tmp_name" do array com os dados do arquivo enviado: // Para verificar as dimensões da imagem$tamanhos = getimagesize($arquivo["tmp_name"]);		// Verifica larguraif($tamanhos[0] > $config["largura"]){$erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";}// Verifica alturaif($tamanhos[1] > $config["altura"]){	$erro[] = "Altura da imagem não deve   ultrapassar " . $config["altura"] . " pixels";}Então, essas são as verificações que todo script seu com upload de arquivos, principalmente de imagens, deveria ter. Evitando assim: uso elevado do espaço do servidor, páginas "estourando" de tamanho devido à imagens com dimensões elevadas, arquivos inválidos, gerando assim imagens quebradas em sua página. Espero que gostem e usem bem.

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.