Foros del Web » Programando para Internet » PHP »

Validar el tamaño de una imagen

Estas en el tema de Validar el tamaño de una imagen en el foro de PHP en Foros del Web. buenas, solo keria saber como hacer para ke antes de ke el suuario sub la imagen, se peuda validar por ejemplo que la imagen ke ...
  #1 (permalink)  
Antiguo 22/02/2007, 08:56
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
Pregunta Validar el tamaño de una imagen

buenas, solo keria saber como hacer para ke antes de ke el suuario sub la imagen, se peuda validar por ejemplo que la imagen ke suban este entre una imagen de 200x300 y de 1024x768 ... me explico ?
salu2 y de antemano mcuahs gracias
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #2 (permalink)  
Antiguo 22/02/2007, 09:29
 
Fecha de Ingreso: septiembre-2006
Mensajes: 349
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: [Ayuda] Validar el tamaño de una imagen

El imagen se puede validar una vez subido en carpeta temporal, el php se ejecuta en el servidor y no lo veo posible saber el tamano antes de subir.
Otra cosa que despues de subir lo puedes ajustar a tamano adecuado.
Eso se hace con un codigo por ejemplo como este

Código PHP:
function redimensiona_imagen($archivo_nuevo$dir,  $anchura$altura){
//datos nesesarios para procesar 
//$archivo foto  a redireccionar
//dir - directorio donde se guarda la foto
//$anchura maxima
//$azltura  maxima

//creamos imagen nuevo apartir de cargado
//ruta completa del archivo
$uploadfile=$dirbasename($archivo_nuevo);
$img_fuente=@imagecreatefromjpeg($uploadfile)
or die(
"No se puede proceder");
//sacamos los datos de altura y anchura del imagen cargado
//anchura
        
$img_ancho=imagesx($img_fuente);
         echo(
$img_ancho);
            
         
//altura
        
$img_alto=imagesy($img_fuente);
         echo(
$img_alto);
//sacamos la diferencia para averiguar forma de imagen
$diferencia=$img_ancho/$img_alto;
//si la anchura es superior a la altura ajustamos anchura a establecido
if($img_ancho>$anchura || $img_alto>$altura){

if(
$diferencia>1){
        
// crear imagen nueva
        
$img_nueva_anchura=$anchura;
        
$img_nueva_altura=$img_alto/($img_ancho/$anchura);}
        
//si altura es superior a la anchura 
if($diferencia<1){
        
$img_nueva_altura=$altura;
        
$img_nueva_anchura=$img_ancho/($img_alto/$altura);}    
        
        
//si el imagen es cuadrado restamos de altura ya anchura lo mismo
        
if($diferencia==1){
        
$dif=$img_ancho-$anchura;
        
$img_nueva_anchura=$anchura;
        
$img_nueva_altura=$img_alto-$dif;}
        
// creamos  imagen nueva vacia con dimesiones adecuadas
$thumb imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura)
or die(
"No se ha podido ejecutar la función imagecreatetruecolor");

//redimensionamos el imagen
imagecopyresampled ($thumb$img_fuente0,0,0,0$img_nueva_anchura$img_nueva_altura$img_ancho$img_alto)
        or die(
"No se ha podido ejecutar la función imagecopyresampled");

// guardar la imagen redimensionada 
//asignamos permisos de escritura a la carpeta donde esta hubicado el archivo
chmod($uploadfile0775); 
imagejpeg($thumb ,$uploadfile)
or die(
"No se ha podido mover el archivo redimensionado a la carpeta.");

                    echo 
"<b>Redireccionamiento ok!. Datos:</b><br>"
            echo 
"Nombre: <i><a href='".$uploadfile."'>".$uploadfile."</a></i><br>"
            echo 
"Anchura: <i>".$img_nueva_anchura."</i><br>"
                    echo 
"Altura: <i>".$img_nueva_altura." bytes</i><br>"
                        echo 
"<br><hr><br>"
        }
        else {echo 
"<b>Redimensionamiento no procede!</b>. El imagen tiene tamaño adecuado.<br>"; }
        } 
Bueno no se si te sirvira.
ESte codigo me funciona sin errores, gracias a los chicos de este foro.
  #3 (permalink)  
Antiguo 26/02/2007, 18:37
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
Re: [Ayuda] Validar el tamaño de una imagen

hola viktoria mucahs gracias por tu ayuda, ya tengo una funcion de rezice ke me funciona perfecta el tema es ke a vcees (la mayoria) los usurios son medios torpes y kzia keiren subir uan imagen que pesa 5MB entonces kiero evitar eso.
salu2 y muchas gracias
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #4 (permalink)  
Antiguo 26/02/2007, 21:36
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 9 meses
Puntos: 5
Re: Validar el tamaño de una imagen

Hola,
Oye haz probado con la variable $archivo_size

Aqui tienes un ejemplo sencillo, que valida formato y tamaño...

Código PHP:
    $extension explode(".",$archivo_name);
    
$num count($extension)-1;
    if(
$extension[$num] == "jpg")
        {
        if(
$archivo_size 30000)
        {
        if(!
copy($archivo"archivos/".$archivo_name)
        {
        echo 
"error al copiar el archivo";
        }
        else
        {
        echo 
"archivo subido con exito";
        }
        }
        else
        {
        echo 
"el archivo supera los 30kb";
        }
        }
        else
        {
        echo 
"el formato de archivo no es valido, solo .jpg";
        } 
Ahora bien si quieres validar tamaños solo vasta con
Código PHP:
$im_info getimagesize($_FILES['archivo'] ['tmp_name']); //
$ancho=$im_info[0];
$alto=$im_info[1]; 
Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #5 (permalink)  
Antiguo 26/02/2007, 22:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: Validar el tamaño de una imagen

Hola:

Cierto es que solo es posible (de manera estandar) subiendo la imagen, pero se puede conseguir una pseudo-validación previa, enviando esa imagen a una página que chequee peso, tipo y tamaño. Tal vez lo hablado en este otro mensaje: Validación de Imagenes!! pueda ayudar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 28/02/2007, 08:15
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 9 meses
Puntos: 5
Re: Validar el tamaño de una imagen

Muy buena esa caricatos... creo que tu tipo validacion podria aportar algo a mis proyectos GD.-

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #7 (permalink)  
Antiguo 28/02/2007, 08:25
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
Re: Validar el tamaño de una imagen

muchisimas gracias m es de gran utilidad. si kieren peudo aportar un funcion ke tengo para redimencionar imagenes con GD..cualq cosa me avisan
salu2 nuevamente y muchisimas gracias :)
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #8 (permalink)  
Antiguo 28/02/2007, 09:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Re: Validar el tamaño de una imagen

Hola:

Cita:
Iniciado por xyyy7 Ver Mensaje
Muy buena esa caricatos... creo que tu tipo validacion podria aportar algo a mis proyectos GD.-

Saludos.-
Me gusta saber que mis humildes aportaciones, pueden servirle a alguien... gracias por decirlo

Cita:
Iniciado por aldo1982 Ver Mensaje
muchisimas gracias m es de gran utilidad. si kieren peudo aportar un funcion ke tengo para redimencionar imagenes con GD..cualq cosa me avisan
salu2 nuevamente y muchisimas gracias :)
Aunque sea un tema que se ha tratado en este foro, si quieres compartirlo, hazlo... posiblemente puedas aportar algo que a algunos se nos haya pasado por alto.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 21:58.