Jump to content
  • 0
viniciussmelo

Redimensionar o tamanho da imagem em um while

Question

Gostaria de saber como eu dar um tamanho de imagem padrão quando executo este while:

 

echo"
			<table id='tabela'>
				<thead>
					<tr>
						<td>Imagem da questão:	</td>
						<td>Matéria da questão:</td>
						<td>Questão :</td>
						<td>Resposta :</td>
						<td>Email de quem cadastrou: </td>
					</tr>
				</thead>
				</table>";

			while($escrever=mysql_fetch_array($res)){

						echo'<table>
						<tr>
						<td><img src="' . $escrever['imagemQuestao'] . '" width="100" height="100"/></td>
						 <td>' .  $escrever['materiaQuestao'] . '</td>
						 <td>' .  $escrever['Questao'] . '</td>
						 <td>' .  $escrever['Resposta'] . '</td>
						 <td>' .  $escrever['nomeProf'] . '</td>
						</tr>
						</table>';
			}

Com esse código está vindo o formato original apenas

Share this post


Link to post
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Olá. Para de trabalhar com  imagens em Loops se todas não tiver o mesmo tamanho pode causar um sério problemas de estética e deformação do CSS, esse problema seria se você fosse exibir elas lado a lado por exemplos em colunas de 2 ou 3.
Se exibir dentro de tabelas dá para controlar a situação, desde que você faça uma tabela para imagem, e for em DIVs é complicado flutuar imagens de tamanhos distintos lado a  lado ou uma em baixo da outra de forma harmônica!

É possível controlar a largura de uma imagem para todas terem a mesma largura, e assim a altura é definida de forma automática respeitando as dimensões em duas proporções originais.

<img class="fig_home" src="endereco_imagem" alt="Ver Detalhes" width="205" border="0">

No exemplo cima, todas elas terão 205 de largura, porém cada uma terá uma altura diferente devido a proporção.
Eu numa época tentei de vária formas formatar imagens para se ajustar em linha independente do seu tamanho, mas não obtive sucesso, cheguei numa conclusão que o correto é enviar a imagem do tamanho adequado. Eu então redimenciono a largura e as alturas sendo todas iguais irá deixar a tela perfeita.

No anexo eu mostro o que acontece com imagens de alturas diferentes flutuando lado a lado!

Abraços!
 

divs.jpg

  • Obrigado! 1

Share this post


Link to post
Share on other sites
  • 0
9 horas atrás, Fábio BN disse:

Olá. Para de trabalhar com  imagens em Loops se todas não tiver o mesmo tamanho pode causar um sério problemas de estética e deformação do CSS, esse problema seria se você fosse exibir elas lado a lado por exemplos em colunas de 2 ou 3.
Se exibir dentro de tabelas dá para controlar a situação, desde que você faça uma tabela para imagem, e for em DIVs é complicado flutuar imagens de tamanhos distintos lado a  lado ou uma em baixo da outra de forma harmônica!

É possível controlar a largura de uma imagem para todas terem a mesma largura, e assim a altura é definida de forma automática respeitando as dimensões em duas proporções originais.

<img class="fig_home" src="endereco_imagem" alt="Ver Detalhes" width="205" border="0">

No exemplo cima, todas elas terão 205 de largura, porém cada uma terá uma altura diferente devido a proporção.
Eu numa época tentei de vária formas formatar imagens para se ajustar em linha independente do seu tamanho, mas não obtive sucesso, cheguei numa conclusão que o correto é enviar a imagem do tamanho adequado. Eu então redimenciono a largura e as alturas sendo todas iguais irá deixar a tela perfeita.

No anexo eu mostro o que acontece com imagens de alturas diferentes flutuando lado a lado!

Abraços!
 

divs.jpg

Tinha pensado nisso, mas não sabia como fazer.. no caso pesso para o cara anexar a imagem, e como redimensiono ela ?

//Pedindo a imagem
<input id = "fotos" onclick="mensagem()" name="fotos" type="file" size="50" >

//minha estrutura de condição para verificar o tamanho
if (!empty($foto['name'])) 
	{
		// Largura maxima em pixels
		$largura = 500;
		// Altura maxima em pixels
		$altura = 500;
		// Tamanho maximo do arquivo em bytes
		$tamanho = 1000000;
	      
    	// Verifica se o arquivo é uma imagem (extensões)
    	if(!preg_match("/^image\/(jpg|jpeg|png|gif|bmp)$/",$foto['type'])){
     	   $error[1] = "Não é uma imagem...";
   	 	} 
	
		// capturar as dimensoes da imagem
		$dimensoes = getimagesize($foto['tmp_name']);
 
		// Verifica se a altura da imagem  é maior que a altura permitida
		if($dimensoes[1] > $altura) {
			$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
		}
		
		// Verifica se o tamanho da imagem é maior que o tamanho permitido
		if($foto['size'] > $tamanho) {
   		 	$error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
		}
 
		
		// Se não houver nenhum erro
		if ($error == 0) {
		
			// Pega extensao da imagem
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i",$foto['name'],$ext);
			
        	// Gera um nome unico para a imagem
        	$nome_imagem = md5(uniqid(time())).".".$ext[1];

        	// Caminho de onde ficar� a imagem
        	$caminho_imagem = "imagens/".$nome_imagem;		

			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto['tmp_name'],$caminho_imagem);
			
			$sql = "INSERT INTO cadastroquestoes (materiaQuestao, Questao, Resposta, imagemQuestao ,nomeProf) VALUES ('$materiaCad','$questaoCad', '$resposta' ,'$caminho_imagem','$emailProf')";
			
  		    $res = mysql_query($sql);

          if ($res)
      {
          echo"<script language='javascript' type='text/javascript'>
  		  alert('Questao cadastrada com Sucesso!!!');
          window.location.href='cadastroMaterias.php';</script>";
          die();
      }
      else
      {
          echo 'Falha ao gravar questao !!! ';
      }
    }
  }
  else{
	  $caminho_imagem = 'imagens/nCad.jpg';
	  $sql = "INSERT INTO cadastroquestoes (materiaQuestao, Questao, Resposta, imagemQuestao ,nomeProf) VALUES ('$materiaCad','$questaoCad', '$resposta' ,'$caminho_imagem','$emailProf')";
			
  		    $res = mysql_query($sql);

          if ($res)
      {
          echo"<script language='javascript' type='text/javascript'>
  		  alert('Questao cadastrada com Sucesso!!!');
          window.location.href='cadastroMaterias.php';</script>";
          die();
      }
      else
      {
          echo 'Falha ao gravar questao !!! ';
      }
  }
}

Mas com isso apenas da um erro do tamanho e não redimensiona ela. Alguma dica para montar o código  para redimensionar a imagem ?

Share this post


Link to post
Share on other sites
  • 0

Bem. Eu nunca usei Script de redimensionar, pois eu mesmo envio imagens então eu faço isso no Photoshop.

Talvez para dar certo precisaria usar algo mais avançado, algo que se assemelhe aos Scripts de redes sociais cujo consigamos pegar uma imagem não padronizada e delimitar o que queremos que sejam exposto na tela no ato do envio.

Pois se você pegar imagens de alturas distintas e tentar deixar todas do mesmo tamanho, não dá muito certo, precisaria ter um quadro de pixel fixo e adequar a imagem dentro deste quadro, não sei se existe algum recurso que faça isso. O jeito que você fez de deixar a exibição de largura e altura  fixa de 500 x 500 funciona mas deforma a imagem caso ela não seja um quadrado perfeito. 

Se você tiver exibindo imagens não lado a lado, quando você for exibir ela na página, você define apenas a largura, assim a altura entra automática e a imagem fica perfeita, só não funciona se você for exibir lado a lado, mas e for uma por linha dá certo.

Abraços!

  • Obrigado! 1

Share this post


Link to post
Share on other sites
  • 0
Em 17/11/2017 at 11:59, Fábio BN disse:

Bem. Eu nunca usei Script de redimensionar, pois eu mesmo envio imagens então eu faço isso no Photoshop.

Talvez para dar certo precisaria usar algo mais avançado, algo que se assemelhe aos Scripts de redes sociais cujo consigamos pegar uma imagem não padronizada e delimitar o que queremos que sejam exposto na tela no ato do envio.

Pois se você pegar imagens de alturas distintas e tentar deixar todas do mesmo tamanho, não dá muito certo, precisaria ter um quadro de pixel fixo e adequar a imagem dentro deste quadro, não sei se existe algum recurso que faça isso. O jeito que você fez de deixar a exibição de largura e altura  fixa de 500 x 500 funciona mas deforma a imagem caso ela não seja um quadrado perfeito. 

Se você tiver exibindo imagens não lado a lado, quando você for exibir ela na página, você define apenas a largura, assim a altura entra automática e a imagem fica perfeita, só não funciona se você for exibir lado a lado, mas e for uma por linha dá certo.

Abraços!

Valeu a atenção!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By anabeatrizzz
      2. Por que PHP é a mais utilizada em projetos? Explique.
       
      3. São 24 anos de desenvolvimento em PHP, o que faz ele durar tanto na área da programação? Explique.
       
      4. Você acredita que o PHP vai morrer ou não? Explique.
       
      5. Explique o que seria esta HHVM que as empresas utilizam.
       
      6. PHP tem a facilidade de criar APIs, quais seriam as vantagens na hora de desenvolver aplicativos para celular? Explique.
       
      7. Explique um pouco sobre o Laravel, Zend Framework, Sympony, lumen, codelgniter que foram surgindo ao decorrer dos anos.
       
      8. “O PHP veio da WEB e da WEB ele permanecerá”. O que essa frase significaria para você? Explique.
       
      9. Como funcionariam as comunidades em PHP? Por que existem tantas pessoas ainda usando a linguagem? Explique.
       
      10. O PHP vem se modernizando durante anos, quais seriam estas evoluções dele? Explique.
    • By fideles
      Mais uma vez venho aqui pedir ajuda a vocês.
       
      Tenho um formulario que criei aqui na empresa algo bem simples, somente para sair das planilhas de excel, que seria cadastro de funcionarios.
       
      Tem os campos, matricula, nome completo, unidade de trabalho, endereço e telefone de emergencia.
       
      A parte do formulario funciona, a gravação no BD tbm, listar as informações também, ai me perguntaram se era possível um auto preenchimento dos campos colocando somente a matricula do funcionario e respondi que eu não sei porque realmente não sei.
       
      A ajuda que eu preciso de vocês seria, é possível fazer isso ? Colocar a matricula e vir do banco e preencher os outros inputs? Se sim, é possível me derem um exemplo de como funciona e eu estudar o codigo e colocar nos outros inputs.
       
      Obrigado antecipadamente. 
       
    • By tetsuo
      Boas galera?
      Às vezes subo um projeto que, despercebidamente passa um arquivo com letra maiúscula/minúscula
      E dá trabalho pra descobrir que era somente e apenas isso.
       
      Como posso resolver isso?
      Uso rWindows 10.
      Mas a hospedagem é em linux.
       
      O Docker serviria pra me ajudar com essa questão?
       
    • By lUANZIKA3
      minha pagina contém uma table que
      exibe a ultima id da minha DB porém ela não fica ativa.
      a ultima id só é exibida se o form tiver sido enviado.
      ↓table aonde é exibida a Insert_id
      <table class="table table-dark" method="POST" action="processa.php"> <thead> <tr> <th scope="col">#</th> <th scope="col">Ultimo ID</th> </tr> </thead> <tbody> <tr> <th scope="row">1</th> <td> <?php if(isset($_SESSION['id'])){ echo $_SESSION['id']; } ?></td> </tr> </tbody> </table> Agora a conexao.php
      <?php session_start(); $servidor = "localhost"; $usuario = "root"; $senha = ""; $dbname = "contas"; //Criar a conexao $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING); $face = filter_input(INPUT_POST, 'face', FILTER_SANITIZE_STRING); $numeros = filter_input(INPUT_POST, 'numeros', FILTER_SANITIZE_STRING); //echo "Nome: $nome <br>"; //echo "E-mail: $email <br>"; $result_usuario = "INSERT INTO usuarios (nome, face, numeros, created) VALUES ('$nome', '$face', '$numeros', NOW())"; if ($conn->query($result_usuario) === TRUE) { $id = $conn->insert_id; $_SESSION['id'] = "" . $id; } else { echo "Error: " . $result_usuario . "<br>" . $conn->error; } $resultado_usuario = mysqli_query($conn, $result_usuario); if(mysqli_insert_id($conn)){ $_SESSION['msg'] = "<div class='alert alert-success' role='alert'> Parabéns agora você está participando! </div>"; header("Location: index.php"); }else{ $_SESSION['msg'] = "<div class='alert alert-danger' role='alert'> OPS! Parece que você já está participando, espere por outro sorteio e volte! </div>"; header("Location: index.php"); }  
    • By lUANZIKA3
      minha pagina contém uma table que
      exibe a ultima id da minha DB porém ela não fica ativa.
      a ultima id só é exibida se o form tiver sido enviado.
      ↓table aonde é exibida a Insert_id
      <table class="table table-dark" method="POST" action="processa.php"> <thead> <tr> <th scope="col">#</th> <th scope="col">Ultimo ID</th> </tr> </thead> <tbody> <tr> <th scope="row">1</th> <td> <?php if(isset($_SESSION['id'])){ echo $_SESSION['id']; } ?></td> </tr> </tbody> </table> Agora a conexao.php
      <?php session_start(); $servidor = "localhost"; $usuario = "root"; $senha = ""; $dbname = "contas"; //Criar a conexao $conn = mysqli_connect($servidor, $usuario, $senha, $dbname); $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_STRING); $face = filter_input(INPUT_POST, 'face', FILTER_SANITIZE_STRING); $numeros = filter_input(INPUT_POST, 'numeros', FILTER_SANITIZE_STRING); //echo "Nome: $nome <br>"; //echo "E-mail: $email <br>"; $result_usuario = "INSERT INTO usuarios (nome, face, numeros, created) VALUES ('$nome', '$face', '$numeros', NOW())"; if ($conn->query($result_usuario) === TRUE) { $id = $conn->insert_id; $_SESSION['id'] = "" . $id; } else { echo "Error: " . $result_usuario . "<br>" . $conn->error; } $resultado_usuario = mysqli_query($conn, $result_usuario); if(mysqli_insert_id($conn)){ $_SESSION['msg'] = "<div class='alert alert-success' role='alert'> Parabéns agora você está participando! </div>"; header("Location: index.php"); }else{ $_SESSION['msg'] = "<div class='alert alert-danger' role='alert'> OPS! Parece que você já está participando, espere por outro sorteio e volte! </div>"; header("Location: index.php"); }  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.