Ir para conteúdo

Arquivado

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

Hugo Borges_120734

Dimenções da imagem no upload

Recommended Posts

Galera montem um sisteminha de upload bem simples em php, segue:

  $arquivo = $_FILES["imagem"];
  $tamanho =  $arquivo['size'];
  $arrArquivo = explode('.',$arquivo['name']); // Tranforma em array o nome do arquivo
  $fileExtencion = trim($arrArquivo [count($arrArquivo )-1]); // Obtem a extensão do arquivo
  $arrExtPermitidas = array('JPG', 'GIF', 'PNG'); // Array com as extensões permitidas

// Caso a extensão não for permitida
    	if(!in_array(strtoupper($fileExtencion),$arrExtPermitidas)){
     		echo "<script>alert('$texto80'); history.back();</script>"; die;
}

// Gera um identificador único para o arquivo
   		$nomeDoArquivo = md5(uniqid(rand(), true));
   		// Diretorio dos arquivos
   		$pasta_dir = "../../Arquivos/$db/Cadastros/";
   		// Definindo o destino do arquivo
   		$arquivo_nome = $pasta_dir . $nomeDoArquivo . '.' . $fileExtencion;
   		// Faz o upload da imagem
   		move_uploaded_file($arquivo["tmp_name"], $arquivo_nome);

Minha dúvida e o seguinte, se eu pegar uma imagem 1024 x 768 ele upa ela com este tamanho.

Eu queria que ao upar ela mudasse a imagem para 800x600.

 

Poem não queria usar nem uma classe se upload, pois o código e bem simples. e uma classe vai trazer recursos que nem vou usar aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Luis Paullo

deu certinho :) vlw

 

Mas agora enfrento 2 problemas.

 

1º o scrip so funciona em jpeg, queria ele funcionando em no e gif tbm.

Dei uma olhada no tópico que o Beraldo indicou, mas não entendi o que o cara fez la.

 

2º mudei a linha:

$tamMax = array( 200, 240 );

Para:

$tamMax = array( 600, 400 );

E mesmo assim a imagem e sempre redirecionada para o mesmo tamanho de 200x240.

 

Aguem sabe o que pode ser?

// imagem a ser reduzida
$foto = 'tablet.jpg';

// dimensões máximas da imagem, em pixels (largura e altura)
$tamMax = array( 200, 240 );


// 0 => largura
// 1 => Altura
// 2 => Formato da imagem
list( $imgLarg, $imgAlt, $imgTipo ) = getimagesize( $foto );


// verifica se a imagem é maior que o máximo permitido
if ( $imgLarg > $tamMax[0] || $imgAlt > $tamMax[1] )
{
	// verifica se a largura é maior que a altura
	if ( $imgLarg > $imgAlt )
	{
		$novaLargura = $tamMax[0];
		$novaAltura = round( ($novaLargura / $imgLarg) * $imgAlt );
	}
	// se a altura for maior que a largura
	elseif ( $imgAlt > $imgLarg )
	{
		$novaAltura = $tamMax[1];
		$novaLargura = round( ($novaAltura / $imgAlt) * $imgLarg );
	}
	// altura == largura
	else
	{
		$novaAltura = $novaLargura = max( $tamMax );
	}
}
else
{
	echo "não é necessário redimensionar";
	exit();
}


// cria a imagem baseada na imagem original
$srcImg = imagecreatefromjpeg( $foto );
 
// cria a nova imagem
$destImg = imagecreatetruecolor( $novaLargura, $novaAltura );
 
// copia para a imagem de destino a imagem original redimensionada
imagecopyresampled( $destImg, $srcImg, 0, 0, 0, 0, $novaLargura, $novaAltura, $imgLarg, $imgAlt );
 


imagejpeg( $destImg,"minha_imagem.jpg",90 );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara voce nao olho o link da documentação, tem tudo lá que voce precisa, inclusive como lida com GIF;

 

Basta voce ler e olhar os exemplos.

 

function resize($image) {
// $image is the uploaded image
list($width, $height) = getimagesize($image['tmp_name']);

//setup the new size of the image
$ratio = $width/$height;
$new_height = 400;
$new_width = $new_height * $ratio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Luis eu li sim, porem estava com um pouco de dificuldades. Bom mas agradeço sua ajuda, pois foi com as informações que vc me passou que cheguei na resposta que eu queria. Segue código prontinho, para quem servir :)

	// Redimenciona imagem -------------
		// Imagem a ser reduzida
		$foto = 'Arquivos/img.jpg';

		// Dimensões máximas da imagem, em pixels (largura e altura)
		$tamMax = array( 600, 400 );
		
		// Comprime imagem
		// 0 => Sem comprimir
		// 100 => Melhor compreção
		$comprimi = 100;
		
		// 0 => largura
		// 1 => Altura
		// 2 => Formato da imagem
		list( $imgLarg, $imgAlt, $imgTipo ) = getimagesize( $foto );
		

		// Verifica se a imagem é maior que o máximo permitido
		if ( $imgLarg > $tamMax[0] || $imgAlt > $tamMax[1] ){
			
	    	// Verifica se a largura é maior que a altura
			if ( $imgLarg > $imgAlt ){
				$novaLargura = $tamMax[0];
				$novaAltura = round( ($novaLargura / $imgLarg) * $imgAlt );
			}
			// Se a altura for maior que a largura
			elseif ( $imgAlt > $imgLarg ){
				$novaAltura = $tamMax[1];
				$novaLargura = round( ($novaAltura / $imgAlt) * $imgLarg );
			}else{
				// altura == largura
				$novaAltura = $novaLargura = max( $tamMax );
			}
		}

 		// Cria a imagem baseada na imagem original
		switch ($imgTipo){
        	case 1: $srcImg = imagecreatefromgif($foto); break;
        	case 2: $srcImg = imagecreatefromjpeg($foto);  break;
        	case 3: $srcImg = imagecreatefrompng($foto); break;
        	default: return '';  break;
    	}

 
		// Cria a nova imagem
		$destImg = imagecreatetruecolor( $novaLargura, $novaAltura );
 
		// Copia para a imagem de destino a imagem original redimensionada
		imagecopyresampled( $destImg, $srcImg, 0, 0, 0, 0, $novaLargura, $novaAltura, $imgLarg, $imgAlt );
	
 
        // Sava a imagem
		switch ($imgTipo){
        	case 1: imagegif($destImg,'Arquivos/img.jpg', NULL, $comprimi); break;
        	case 2: imagejpeg($destImg,'Arquivos/img.jpg', $comprimi);  break; 
        	case 3: imagepng($destImg,'Arquivos/img.jpg'.$imagem, NULL, $comprimi); break;
        	default: echo ''; break;
   		}
        // FIM Redimenciona imagem -------------

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.