Foros del Web » Programando para Internet » PHP »

Hacer que redimensione tambien para GIF y PNG

Estas en el tema de Hacer que redimensione tambien para GIF y PNG en el foro de PHP en Foros del Web. Llegué hasta el form que a continuacion les pongo, sube, valida, etc, pero me redimensiona como es obvio solo si los archivos que subo son ...
  #1 (permalink)  
Antiguo 13/02/2006, 18:44
 
Fecha de Ingreso: diciembre-2004
Mensajes: 103
Antigüedad: 19 años, 4 meses
Puntos: 0
Hacer que redimensione tambien para GIF y PNG

Llegué hasta el form que a continuacion les pongo, sube, valida, etc, pero me redimensiona como es obvio solo si los archivos que subo son JPG, como modifico este codigo para que redimensione a traves de GD cuando las imagenes que subo son GIF o PNG ?, tengo la idea que es con if o con elseif pero me he quedado en eso.
Agradezco su ayuda y dejo el codigo completo.

Código:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<form enctype="multipart/form-data" action="<?PHP echo $PHP_SELF ?>" 
method="post">
  <div align="left"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    Subir una imagen: 
    <input name="userfile" type="file" size="15">
    <input type="submit" name="submit" value="Enviar">
  </div>
</form>
<?php 

$extension = explode(".",$userfile_name); 
$num = count($extension)-1; 
if($extension[$num] == "jpg" or $extension[$num] == "jpeg" or $extension[$num] == "gif" or $extension[$num] == "png") 
{ 
if($archivo_size < 300000) 
{ 
if(!move_uploaded_file($userfile, "imagenes/".$userfile_name)) 
{ 
echo "Error al copiar el archivo."; 
} 
else 
{
echo "Archivo subido con exito.<br>";


////////////////////////////////TODO ESTO SE PUEDE QUITAR////////////////////////////////////////////
// Utilizando imagecopyresized() para crear un thumbnail automatico

$nombre_imagen = $userfile_name;

// Debo indicar bien el destino del directorio de la imagen
$imagen_origen = ImageCreateFromJPEG("imagenes/$nombre_imagen");

// Calculo el tamaño de la imagen original
$tam_ancho = imagesx($imagen_origen);
$tam_alto = imagesy($imagen_origen);


// Calculo la mitax, para reducirla al 50 %
$ancho = $tam_ancho /2;
$alto = $tam_alto /2;

// Creo la nueva imagen de destino con las medidas (todavia esta vacia)
// Si la imagen no se ve en calidad adecuada reemplazar imagecreate por imagecreatetruecolor
$imagen_destino = imagecreatetruecolor($ancho, $alto);
imagecopyresized($imagen_destino, $imagen_origen, 0, 0, 0, 0, $ancho, $alto, $tam_ancho, $tam_alto);

// Guardamos la imagen en un archivo con le mismo nombre de la imagen original, pero precedido de thumb_
$nombre_destino = "imagenes/thumb_".$nombre_imagen;

// Guardamos la imagen_generada
ImageJPEG($imagen_destino,$nombre_destino,75);

// Mostramos la imagen
echo "La imagen redimensionada ha sido generada."; 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////  


} 
} 
else 
{ 
echo "el archivo supera 300 Kb."; 
} 
} 
else 
{ 
echo "Los formatos validos son jpg, gif y png"; 
} 
?> 
</body>
</html>
  #2 (permalink)  
Antiguo 13/02/2006, 22:11
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
tené en cuenta de que según la versión de GD, no vas a poder trabajar con GIF o con PNG (depende de la versión con cúal vas a poder trabajar)

El problema es simple, estás usando siempre imagecreatefromjpeg sin importar el tipo de la imagen.
Según la extensión, tenés que usar imagecreatefrompng o imagecreatefromgif


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 12:16.