Foros del Web » Programando para Internet » PHP »

Validar imágenes

Estas en el tema de Validar imágenes en el foro de PHP en Foros del Web. Hola amigos: Buscando en las FAQs encontré algo para sacar un directorio, pero quiero solo seleccionar los ficheros gif, jpg (y tal vez png)... supongo ...
  #1 (permalink)  
Antiguo 28/10/2003, 15:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Validar imágenes

Hola amigos:

Buscando en las FAQs encontré algo para sacar un directorio, pero quiero solo seleccionar los ficheros gif, jpg (y tal vez png)... supongo que se hará mejor con expresiones regulares, pero en php no las controlo bien.

De paso me gustaría saber si se puede conocer otros datos de las imágenes como las dimensiones.

Muchas gracias.

Saludos
  #2 (permalink)  
Antiguo 28/10/2003, 15:40
Avatar de Chuty  
Fecha de Ingreso: noviembre-2002
Ubicación: el bar de la esquina
Mensajes: 609
Antigüedad: 21 años, 5 meses
Puntos: 2
Puedes utilizar la funcion de PHP getimagesize
por ejemplo prueba este codigo te puede ser util

Código PHP:
<HTML>
<HEAD>
   <TITLE>Propiedades de los gráficos</TITLE>
</HEAD>
<BODY>
  <TABLE BORDER=3 ALIGN='CENTER'>
  <CAPTION ALIGN='BOTTOM'>
     Propiedades de la imagen
  </CAPTION>
  <TR>
     <TD COLSPAN=2 ALIGN='CENTER'>
<?php
   
if (!isset($nombreimagen))
      
$nombreimagen "error.jpg";
   echo 
"<IMG SRC='$nombreimagen' WIDTH=100 HEIGHT=100>";

   echo 
"</TD>\n";
   echo 
"</TR>\n";

   
/* ejemplo para ver las propiedades de la imagen que se
      pasa como parámetro a la función                      */
   
$tamanio getimagesize($nombreimagen);
   echo 
"<TR>";
   echo 
"<TD ALIGN='RIGHT'>Ancho:</TD>";
   echo 
"<TD ALIGN='CENTER'>$tamanio[0]</TD>";
   echo 
"</TR>";
   echo 
"<TR>";
   echo 
"<TD ALIGN='RIGHT'>Alto:</TD>";
   echo 
"<TD ALIGN='CENTER'>$tamanio[1]</TD>";
   echo 
"</TR>";
   echo 
"<TR>";
   echo 
"<TD ALIGN='RIGHT'>Tipo:</TD>";
   echo 
"<TD ALIGN='CENTER'>";
   switch (
$tamanio[2])
      {
      case 
1: echo "Es una imagen GIF";
              break;
      case 
2: echo "Es una imagen JPG";
              break;
      case 
3: echo "Es una imagen PNG";
      }
   echo 
"</TD>";
   echo 
"</TR>";
   echo 
"<TR>";
   echo 
"<TD ALIGN='RIGHT'>General:</TD>";
   echo 
"<TD ALIGN='CENTER'>$tamanio[3]</TD>";
   echo 
"</TR>";
?>
</TABLE>
<HR>
<H3 ALIGN='CENTER'>Información devuelta por imagesx() e imagesy() </h3>
<TABLE ALIGN='CENTER' BORDER=2>
   <TR ALIGN='CENTER'>
   <TD>imagesx()</TD>
   <TD>imagesy()</TD>
   </TR>
   <TR>
<?php
   $imagen 
imagecreatefromjpeg($nombreimagen);
   
$ancho imagesx($imagen);
   
$alto  imagesy($imagen);
   echo 
"<TD>$ancho</TD>";
   echo 
"<TD>$alto</TD>";
?>
   </TR>
   </TABLE>
</BODY>
</HTML>
Saludos
  #3 (permalink)  
Antiguo 28/10/2003, 16:53
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Gracias Chuty:

Mañana lo probaré y te cuento.

Saludos
  #4 (permalink)  
Antiguo 29/10/2003, 02:26
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 22 años, 5 meses
Puntos: 5
Hello caricatos!!!

Bueno, puedes hacer uso de las funciones de la libreria de imagenes para trabajar como no, con imagenes

En el manual te pone esto, jeje creo que es lo que necesitas exactamente:

Cita:
La función GetImageSize() determinará el tamaño de cualquier fichero de imagen GIF, JPG o PNG y devolverá sus dimensiones junto al tipo de fichero en una cadena de texto que pueda ser usada en una marca HTML IMG normal.

Devuelve una matriz con 4 elementos. El índice 0 contiene la anchura de la imagen en pixels. El índice 1 contiene la altura. El índice 2 es una marca indicando el tipo de imagen. 1 = GIF, 2 = JPG, 3 = PNG. El índice 3 es una cadena de texto con el string correcto "height=xxx width=xxx" para ser usado directamente en una marca IMG.
Pero si necesitas algo mas tan solo tienes que acudir a:

http://www.php.net/image

Esa es la pagina de referencia a la libreria de imagenes. Suerte!!!
__________________
Usuario registrado de Linux #288725
  #5 (permalink)  
Antiguo 29/10/2003, 13:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

Con las 2 magníficas ayudas hice esta página:

Código PHP:
<html>
<head>
<title>
PHP - Listado de animales
</title>
</head>
<body style="margin:0">
<?
$tipo 
= array("""gif""jpg""png");
$d dir("./postales/animales/");
echo 
"<table style='width=100%' border=\"1\"><tr><th><font <b>Imagen</b></font></th><th>Descripción</th></tr>";
$i 1;
while(
$entry=$d->read()) {
if (
is_dir($d->path.'/'.$entry)) {
}
$elemento $d->path.'/'.$entry;
if (
is_file($elemento)) {
$img GetImageSize($elemento$info);
if (isset(
$img))    {
    
$mostrar "<tr><td width=20% align=center valign=middle><img src=".$elemento." ></td><td>ancho: ".$img[0]."<br>alto: ".$img[1]."<br>";
    
$mostrar .= "tipo: ".$tipo[$img[2]]."<br>valores: ".$img[3]."<br>info:".$info."</td></tr>";
    echo 
$mostrar;
    }
}
$i++;
}
echo 
"</table>";
$d->close();
?>
</body>
</html>
que se puede ver en esta dirección:
http://www.pepemolina.com/dibujos.html
... Por ahora es solo un proyecto, pero va a mejorar...

epplestun: Muy buen enlace. Yo lo puse en mis favoritos.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:36.