Foros del Web » Programando para Internet » PHP »

Galeria de imagenes php

Estas en el tema de Galeria de imagenes php en el foro de PHP en Foros del Web. Hola. estoy aciendo una galeria de imagenes donde quiero que se vean en una pagina todas las miniaturas de las imagenes subidas y cuando pulse ...
  #1 (permalink)  
Antiguo 09/12/2011, 16:51
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Galeria de imagenes php

Hola.
estoy aciendo una galeria de imagenes donde quiero que se vean en una pagina todas las miniaturas de las imagenes subidas y cuando pulse sobre una de ellas se abra en grande se puede hacer esto sin tener guardadas dos imagenes iguales una grande y una miniatura?? y como hago para que se vean todas las imagenes en miniatura en una pagina?? yo tengo hecho el formulario de upload y lo guarda en la base de datos pero nose como hacer esto ahora me pueden dar alguna idea?? y hechar una mano?? gracias un saludo.
  #2 (permalink)  
Antiguo 09/12/2011, 16:58
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Galeria de imagenes php

Si vas a hacer un uso extenso de la galería, te recomiendo manejar miniaturas, así reducirás el ancho de banda necesario y los tiempos de carga.

Una manera de hacerlo y no tiene que ver mucho con php es indicar en el html un tamaño determinado, puede ser mediante css: <img src="mi_imagen.jpg" style="width:100px;height:100px;"/> pero esto de todos modos carga la imagen completa en el navegador con su correspondiente carga de trabajo.
  #3 (permalink)  
Antiguo 09/12/2011, 17:17
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Entonces con eso lo que aría es sacarme la miniaturas y lg cuando yo kiero verla la saca entera o como funciona lo que me dijiste?? y si meto una miniatura modificando con php cuyo codigo tengo ya preparado lg ay manera de visualizarlo mas grande??? gracias.
  #4 (permalink)  
Antiguo 10/12/2011, 08:26
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Como puedo hacer los thumbnails?? al subir mis imagenes quiero que se guarden en las carpetas fotos y su miniatura (thumbnails) en otra que este dentro de fotos que se yame mini. como puedo hacer esto lo de copiarlas supongo que poniendo otro copy y poniendo otras cosas pero la miniatura nose como se hace mediante codigo. gracias.
  #5 (permalink)  
Antiguo 10/12/2011, 09:47
 
Fecha de Ingreso: agosto-2011
Ubicación: España
Mensajes: 445
Antigüedad: 12 años, 7 meses
Puntos: 89
Respuesta: Galeria de imagenes php

Necesitarás usar GD o Imagemagick para hacer los thumbs.
  #6 (permalink)  
Antiguo 10/12/2011, 13:25
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Y no habria manera de que lo haga automaticamente al subir una imagen normal guardar las dos la miniatura y la normal sin tener que crearla??
  #7 (permalink)  
Antiguo 10/12/2011, 14:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Galeria de imagenes php

Claro que es posible, al momento de haber completado el upload, verificas si el archivo es de imagen, si lo es llamas a esta función, por ejemplo así:

Código PHP:
Ver original
  1. redimensionar_imagen($imagen_usuario,'th.'.$imagen_usuario,'imagenes',100,100);
  2.  
  3. function redimensionar_imagen($imagen, $nombre_imagen_asociada,$directorio,$nuevo_ancho,$nuevo_alto){
  4.     $directorio=utf8_encode($directorio);
  5.     $imagen=utf8_encode($imagen);
  6.     $nombre_imagen_asociada=utf8_encode($nombre_imagen_asociada);
  7.     if(!file_exists("$directorio/$imagen"))
  8.         die("Error: no existe $directorio/$imagen");
  9.     $info_imagen = getimagesize("$directorio/$imagen");
  10.     $alto = $info_imagen[1];
  11.     $ancho = $info_imagen[0];
  12.     $tipo_imagen = $info_imagen[2];
  13.     if($ancho > $nuevo_ancho OR $alto > $nuevo_alto){
  14.         if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho))
  15.             $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;      
  16.         else
  17.             $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);  
  18.     }
  19.     else{
  20.             $nuevo_alto = $alto;
  21.             $nuevo_ancho = $ancho;
  22.     }
  23.     switch ($tipo_imagen) {
  24.         case 1: //si es gif ?
  25.             $imagen_nueva = imagecreate($nuevo_ancho, $nuevo_alto);
  26.             $imagen_vieja = imagecreatefromgif("$directorio/$imagen");
  27.             imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  28.             if (!imagegif($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
  29.         break;
  30.         case 2: //si es jpeg ?
  31.             $imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  32.             $imagen_vieja = imagecreatefromjpeg("$directorio/$imagen");
  33.             imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  34.             if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
  35.         break;
  36.         case 3: //si es png ?
  37.             $imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  38.             $imagen_vieja = imagecreatefrompng("$directorio/$imagen");
  39.             imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  40.             if (!imagepng($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false;
  41.         break;
  42.     }
  43.     return true;
  44. }

Con esto tendrías la miniatura de la imagen con las letras th. al inicio, de modo que si la imagen se llama sol.jpg su miniatura se llamaría th.sol.jpg y mediría máximo 100 pixeles de ancho o alto
  #8 (permalink)  
Antiguo 10/12/2011, 17:27
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

haber tengo unas dudas:
redimensionar_imagen($imagen_usuario,'th.'.$imagen _usuario,'imagenes',100,100); esta linea que es lo que hace?
$directorio=utf8_encode($directorio); esta es una variable que debo definir yo donde quiero guardar la imagen no??
$nombre_imagen_asociada=utf8_encode($nombre_imagen _asociada); esto es el nombre que tengo ya de la imagen no?
$info_imagen = getimagesize("$directorio/$imagen"); esta fila tampoco se lo que hace??
Lo demas creo que si lo entiendo la ultima duda es con este codigo podria subir las dos fotos a la vez es decir este codigo me hace la miniatura y si yo tengo el otro subirian las dos??? completandolo claro. un saludo y gracias.

Última edición por edie8; 10/12/2011 a las 17:35
  #9 (permalink)  
Antiguo 11/12/2011, 06:48
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Puedo hacer que la imagen que se suba se haga dos redimensionamiento la imagen grande se reduzca solamente un poco el peso y la otra ya sea la miniatura?? si es asi como puedo hacer estas dos cosas ala vez??? gracias un saludo.
  #10 (permalink)  
Antiguo 11/12/2011, 09:30
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

He conseguio hacer que me haga la imagen en grande y en pequeño pero tengo un problema me sale estos errores y nose como repararlos quiero que me funcione con jpeg gif y png que son los mas conocidos pero uso esta funcion:
$viejaimagen = imagecreatefromjpeg($tmpimagen);
$nuevaimagen = imagecreatetruecolor($ancho, $alto);//Nueva imagen
imagecopyresized($nuevaimagen, $viejaimagen,0,0,0,0,$ancho,$alto,$width,$height);
Este es el error:

Warning: imagecreatefromjpeg() [function.imagecreatefromjpeg]: '/tmp/phpnmhMeR' is not a valid JPEG file in /home/a3568063/public_html/prueba/fotos.php on line 53

Warning: imagecopyresized(): supplied argument is not a valid Image resource in /home/a3568063/public_html/prueba/fotos.php on line 55

Estas son la linea 52 a 56:
Código PHP:
if(($info['extension'] == "jpg") or ($info['extension'] == "png") or ($info['extension'] == "gif")) {
            
$viejaimagen imagecreatefromjpeg($tmpimagen); 
            
$nuevaimagen imagecreatetruecolor($ancho$alto);//Nueva imagen
            
imagecopyresized($nuevaimagen$viejaimagen,0,0,0,0,$ancho,$alto,$width,$height); 
el error del imagecreatefrom se como solucionarlo pero nose nose como reparar el imagecopyresized.
Espero que me puedan hechar una mano gracias un saludo.
  #11 (permalink)  
Antiguo 11/12/2011, 13:36
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Haber tengo este codigo ya sin errores:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dar estilo a un bot&oacute;n input file</title>
<link href="Css/jquery.si.css" rel="stylesheet" type="text/css" />
<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.1.min.js" type="text/javascript"></script>
<script src="Js/jquery.si.js" type="text/javascript"></script>
<div class="file"> <script type="text/javascript">
    $(document).ready(function() {
        $("input.file").si();
    });
</script>
<SCRIPT LANGUAGE="javascript"> 
<!-- 
function validar(){ 
alert('aceptar para seguir'); 
document.formulario.submit(); 
//También te puedes referir a ese objeto mediante un arreglo de esta forma 
//document.forms[0].submit(); 

//--> 
</script> 
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="foto" onChange="submit(this)" class="file"/>
</form>
</div>
<?php

$nameimagen 
$_FILES['foto']['name'];
$tmpimagen  $_FILES['foto']['tmp_name'];
//Comprobamos si los campos están vacios...
if($nameimagen =="" or $tmpimagen=="") {
    
} else {
    
//Establecemos el ancho fijo que tendran las miniaturas
    
$ancho 250;//Ancho de la imagen nueva
    //Obtenemos informacion acerca del fichero, para conocer su extension
    
$info pathinfo($nameimagen);
    
    
$tamano getimagesize($tmpimagen);
    
print_r($tamano);
    
    
$width  =  $tamano[0];//Ancho de la imagen
    
$height =  $tamano[1];//Alto de la imagen
    
    
    //Comprobamos el ancho , para ver si supera los 120
    
if($width $ancho) {
        
$alto intval($height $ancho $width);//Alto de la imagen nueva
        //Comprobamos si la imagen es JPG
        
switch($info['extension']) { 
            case 
'jpg':
            
$viejaimagen imagecreatefromjpeg($tmpimagen); 
            
$nuevaimagen imagecreatetruecolor($ancho$alto);//Nueva imagen
            
imagecopyresized($nuevaimagen$viejaimagen,0,0,0,0,$ancho,$alto,$width,$height);
            break;
            case 
'png':
            
$viejaimagen imagecreatefrompng($tmpimagen); 
            
$nuevaimagen imagecreatetruecolor($ancho$alto);//Nueva imagen
            
imagecopyresized($nuevaimagen$viejaimagen,0,0,0,0,$ancho,$alto,$width,$height);
            break;
            case 
'gif':
            
$viejaimagen imagecreatefromgif($tmpimagen); 
            
$nuevaimagen imagecreatetruecolor($ancho$alto);//Nueva imagen
            
imagecopyresized($nuevaimagen$viejaimagen,0,0,0,0,$ancho,$alto,$width,$height);
            break;
            }
            
            
            
$original "fotos/$nameimagen";
            
$copia    "fotos/mini/copia_$nameimagen";
            
copy($tmpimagen$original);//imagen.jpg
            
imagejpeg($nuevaimagen,$copia);//copia_imagen.jpg
            
echo "Se ha redimensionado correctamente";
        
         
    } else {
        echo 
"La imagen debe tener un ancho mayor que 120";
    }
}
?>
Pero quisiera que la imagen original tambien se haga un poco más pequeña pero nose como puedo lograr esto con este codigo, este lo saque siguiendo un tutorial de yuotube, me podeis dar una idea?? como y donde tengo que poner el codigo para que la original tambien se modifique aunque nose haga tan pequeña?? un saludo.
  #12 (permalink)  
Antiguo 12/12/2011, 06:23
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Buenos dias por fin he conseguido hacer que se me hagan mis imagenes pequeñas y una en miniatura solo quería preguntar como puedo hacer para que se vean todas las miniaturas juntas y que cuando pulse sobre ellas se me abran la imagen grande?? gracias un saludo.
  #13 (permalink)  
Antiguo 12/12/2011, 14:51
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Ya tengo hecho la parte de que muestre las imagenes en grande y en pequeño ahora mi problema es que quiero que se habran tipo facebook o tuenti y nose ni como ni con que programacion debo hacerlo si javascritp o como me podeis dar una idea de como hacerlo?? gracias.
  #14 (permalink)  
Antiguo 13/02/2012, 06:13
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: Galeria de imagenes php

Buenas otra vez llevo tiempo queriendo hacer la galeria pero me atasque en que yo tengo mis miniaturas y al pulsar sobre ellas quiero que se habra la grande en otra pagina hasta aqui todo perfecto, pero quiero que cuando se habra la imagen grande tenga un boton link que pase a la siguente foto y otro de vuelta a la anterior, pero nose como he de hacer esto me podeis hechar una mano con alguna idea?? gracias.

Etiquetas: formulario, galeria, imagenes
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 11:48.