Foros del Web » Programando para Internet » PHP »

formatear imagen con php

Estas en el tema de formatear imagen con php en el foro de PHP en Foros del Web. Hola, tengo un formulario para subir imagenes a mi servidor, y unos filtros para evitar que sobrepase el tamaño, y que acepte determinados formatos pero ...
  #1 (permalink)  
Antiguo 11/05/2008, 14:44
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 17 años
Puntos: 0
formatear imagen con php

Hola, tengo un formulario para subir imagenes a mi servidor, y unos filtros para evitar que sobrepase el tamaño, y que acepte determinados formatos

pero no se como hacer para cambiar la resolucion de la imagen, porque al mostrar algunas en mi pagina me la descuadran,
he probado a poner unas dimensiones fijas, pero como cada imagen tiene distinta resolucion... algunas se ven estiradas...

y tambien como podria modificar el nombre de la imagen x defecto y ponerle uno aleatorio..

gracias de antemano. un saludo
  #2 (permalink)  
Antiguo 11/05/2008, 15:38
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Re: formatear imagen con php

hola

ESte es el codigo que utilizo para redimensionar una imagen sibida mediante form

Código PHP:
if(isset($_FILES['fichero']['name'])) {  

   if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
   
   
   
//empieza la redimension, tomamos la imagen temporal subida
   
$info getimagesize($_FILES['fichero']['tmp_name']); 
   
//segun el caso sera jpg, gif, png
   
switch ($info[2]) {
  case 
1:
    
$imagen imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
  case 
2:
    
$imagen imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
  case 
3:
    
$imagen imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
  
// etcétera // 
  
}

$original $imagen;
$original_w imagesx($original);
$original_h imagesy($original);

$max 175;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS

if($original_w>$original_h) {
    
$muestra_w $max;
    
$muestra_h intval(($original_h/$original_w)*$max);
    } else {
    
$muestra_w intval(($original_w/$original_h)*$max);
    
$muestra_h $max;
    }

$muestra imagecreatetruecolor($muestra_w,$muestra_h); 

imagecopyresampled($muestra,$original,0,0,0,0$muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya 
y para generar un nombre aleatorio podrias cambiar el nombre de maimagen por una cadena aleatoria con una funcion como esta:

Código PHP:
function genera_random($longitud){ 
    
$exp_reg="[^A-Z0-9]"
    return 
substr(eregi_replace($exp_reg""md5(rand())) . 
       
eregi_replace($exp_reg""md5(rand())) . 
       
eregi_replace($exp_reg""md5(rand())), 
       
0$longitud); 
}

$nombre_imagen genera_random(20);  //el parametro 20 indica la longitud de la cadena. 
Un saludo espeero que te sirva
  #3 (permalink)  
Antiguo 11/05/2008, 16:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 17 años
Puntos: 0
Re: formatear imagen con php

muchas gracias, si m sirve
pero como puedo cambiar el nombre de la imagen, con que funcion???
  #4 (permalink)  
Antiguo 11/05/2008, 16:40
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 17 años
Puntos: 0
Re: formatear imagen con php

ya no hace falta, lo he consguido... un despiste. muxas asiass
  #5 (permalink)  
Antiguo 11/05/2008, 17:03
 
Fecha de Ingreso: noviembre-2007
Mensajes: 264
Antigüedad: 17 años
Puntos: 0
Re: formatear imagen con php

Porcierto podrias explicar este codigo con mas detalle?? eske no se lo que hace.. lo he colocado en mi pagina y no se k ace... un saludo
Código PHP:
if(isset($_FILES['fichero']['name'])) {  

   if(
is_uploaded_file($_FILES['fichero']['tmp_name'])) {
   
   
   
//empieza la redimension, tomamos la imagen temporal subida
   
$info getimagesize($_FILES['fichero']['tmp_name']); 
   
//segun el caso sera jpg, gif, png
   
switch ($info[2]) {
  case 
1:
    
$imagen imagecreatefromgif($_FILES['fichero'] ['tmp_name']); break;
  case 
2:
    
$imagen imagecreatefromjpeg($_FILES['fichero'] ['tmp_name']); break;
  case 
3:
    
$imagen imagecreatefrompng($_FILES['fichero'] ['tmp_name']); break;
  
// etcétera // 
  
}

$original $imagen;
$original_w imagesx($original);
$original_h imagesy($original);

$max 175;  //AQUI PONES EL TAMAÑO DE LA IMAGEN A LO QUE QUIERAS

if($original_w>$original_h) {
    
$muestra_w $max;
    
$muestra_h intval(($original_h/$original_w)*$max);
    } else {
    
$muestra_w intval(($original_w/$original_h)*$max);
    
$muestra_h $max;
    }

$muestra imagecreatetruecolor($muestra_w,$muestra_h); 

imagecopyresampled($muestra,$original,0,0,0,0$muestra_w,$muestra_h,$original_w,$original_h);
imagedestroy($original); // aqui destruyo el original, pues no hace falta ya 
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 14:08.