Retroceder   Foros del Web > Programación para sitios web > PHP

Respuesta
 
Herramientas Desplegado
Antiguo 11-may-2008, 14:44   #1 (permalink)
layker no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2007
Mensajes: 199
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
layker está desconectado   Responder Citando
Antiguo 11-may-2008, 15:38   #2 (permalink)
jaronu tiene algunos puntos positivos de karma
 
Avatar de jaronu
 
Fecha de Ingreso: febrero-2008
Mensajes: 1.632
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
jaronu esta en línea ahora   Responder Citando
Antiguo 11-may-2008, 16:17   #3 (permalink)
layker no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2007
Mensajes: 199
Re: formatear imagen con php

muchas gracias, si m sirve
pero como puedo cambiar el nombre de la imagen, con que funcion???
layker está desconectado   Responder Citando
Antiguo 11-may-2008, 16:40   #4 (permalink)
layker no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2007
Mensajes: 199
Re: formatear imagen con php

ya no hace falta, lo he consguido... un despiste. muxas asiass
layker está desconectado   Responder Citando
Antiguo 11-may-2008, 17:03   #5 (permalink)
layker no se puede cailificar en este momento
 
Fecha de Ingreso: noviembre-2007
Mensajes: 199
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 
layker está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 16:53.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93