Foros del Web » Programando para Internet » PHP »

Ayuda - Thumbnails de Imágenes

Estas en el tema de Ayuda - Thumbnails de Imágenes en el foro de PHP en Foros del Web. Hola a todos, estoy terminando una página web con un amigo, es más bien un foro donde permitimos al usuario subir una imagen, sea png, ...
  #1 (permalink)  
Antiguo 28/11/2010, 20:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 8
Antigüedad: 14 años, 1 mes
Puntos: 0
Ayuda - Thumbnails de Imágenes

Hola a todos, estoy terminando una página web con un amigo, es más bien un foro donde permitimos al usuario subir una imagen, sea png, jpg, gif, o bmp que al subirla aparezca en su perfil como avatar de medidas de 48*48 pero con el código que mostrare a continuación no muestra el gif en movimiento y al subir cualquier imagen automáticamente pierde notoriamente la calidad. me podrían señalar el error en el código? o alguna ayuda. Agradecido de antemano, Saludos.
Código PHP:
<?php
# Constantes
define(IMAGE_BASE'');
define(IMAGE_BASE1'');
define(MAX_WIDTH48);
define(MAX_HEIGHT48);

# Obtener ubicación de la imagen
$image_file str_replace('..'''$_SERVER['QUERY_STRING']);
$image_path IMAGE_BASE.$image_file;

# Cargar la imagen
$img null;
$ext strtolower(end(explode('.'$image_path)));
if (
$ext == 'jpg' || $ext == 'jpeg') {
    
$img = @imagecreatefromjpeg($image_path);
} else if (
$ext == 'png') {
    
$img = @imagecreatefrompng($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
else if (
$ext == 'gif') {
    
$img = @imagecreatefromgif($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
else if (
$ext == 'bmp') {
    
$img imagecreatefrombmp($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}
else if (
$ext == 'tif') {
    
$img imagecreatefromtif($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}



# Si una imagen se ha cargado con éxito, prueba la imagen para una vista
if ($img) {

    
# Obtener tamaño de la imagen y la relación de escala
    
$width imagesx($img);
    
$height imagesy($img);
    
$scale min(MAX_WIDTH/$widthMAX_HEIGHT/$height);

    
# Si la imagen es mayor que el máximo se encogen
    
if ($scale 1) {
        
$new_width floor($scale*$width);
        
$new_height floor($scale*$height);

        
# Creamos una nueva imagen temporal
        
$tmp_img imagecreatetruecolor($new_width$new_height);

        
# copia y redimensiona la vieja imagen en la nueva imagen
        
imagecopyresampled($tmp_img$img0000,
                         
$new_width$new_height$width$height);
        
imagedestroy($img);
        
$img $tmp_img;
    }
}

# Crear una imagen de error si es necesario
if (!$img) {
# Obtener ubicación de la imagen
$image_file str_replace('..'''$_SERVER['QUERY_STRING']);
$image_path IMAGE_BASE1."nophoto.jpg";

# Cargar imagen
$img null;
$ext strtolower(end(explode('.'$image_path)));
if (
$ext == 'jpg' || $ext == 'jpeg') {
    
$img = @imagecreatefromjpeg($image_path);
} else if (
$ext == 'png') {
    
$img = @imagecreatefrompng($image_path);
# Sólo si su versión de GD incluye soporte para GIF
}

# Si una imagen se ha cargado con éxito, prueba la imagen para una vista
if ($img) {

    
# Obtener tamaño de la imagen y la relación de escala
    
$width imagesx($img);
    
$height imagesy($img);
    
$scale min(MAX_WIDTH/$widthMAX_HEIGHT/$height);

    
# Si la imagen es mayor que el máximo se encogen
    
if ($scale 1) {
        
$new_width floor($scale*$width);
        
$new_height floor($scale*$height);

        
# Creamos una nueva imagen temporal
        
$tmp_img imagecreatetruecolor($new_width$new_height);

        
# copia y redimensiona la vieja imagen en la nueva imagen
        
imagecopyresampled($tmp_img$img0000,
                         
$new_width$new_height$width$height);
        
imagedestroy($img);
        
$img $tmp_img;
    }
}
}

# Pantalla de la imagen
if($img)
{
header("Content-type: image/jpeg");
imagejpeg($img);
}
else
{
print 
"$image_path";
}
?>

Etiquetas: thumbnails
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 13:03.