Foros del Web » Programando para Internet » PHP »

Implementar libreria GD a galeria de imagenes

Estas en el tema de Implementar libreria GD a galeria de imagenes en el foro de PHP en Foros del Web. Hola amigos, verán tengo dos codigos que funcionan perfectamente por separado, el problema es que no se implementar uno dentro del otro. A ver si ...
  #1 (permalink)  
Antiguo 13/03/2014, 09:32
 
Fecha de Ingreso: mayo-2012
Mensajes: 760
Antigüedad: 11 años, 11 meses
Puntos: 5
Implementar libreria GD a galeria de imagenes

Hola amigos, verán tengo dos codigos que funcionan perfectamente por separado, el problema es que no se implementar uno dentro del otro.

A ver si me pudieran ayudar. Verán:

El primer codigo me genera una galería de imagenes extrayendolas desde una base de datos mysql. Y me va generando una tabla y las celdas necesarias segun el numero de fotos encontradas en la base de datos.
Mostrandose por pantalla todas las miniaturas correctamente.

El segundo codigo genera mediante la libreria GD, una miniatura de una imagen grande encontrada en el directorio que se le indique. Y funciona tambien perfectamente.

El problema como digo es que no se como implementar este codigo que genera una miniatura partiendo de una grande en el codigo de la galeria de imagenes para que me genere las miniaturas de todas las imagenes encontradas en la base de datos.

Si alguien me pudiera hechar una mano le estaria muy agradecido.

Espero que se halla entendido.

Gracias de antemano.

Este es el codigo:

Codigo de galeria de imagenes:

Código PHP:
Ver original
  1. <?php include("conexion_bbdd/conexion_bbdd.php"); ?>  
  2.    
  3.                                 <!-- GALERÍA DE MICRO-IMAGENES ===============================================================================================================================-->  
  4.                                                    
  5.                                 <div class="contenedor_opcs_galerias" style="margin-top:57px; margin-left:38px; width:908px; height:275px;">
  6.                        
  7.                                    
  8.                                     <div style="margin-top:-85px; margin-left:-52px; height:525px;">
  9.                                
  10.                                     <?php
  11.                                
  12.                                     $fotos = mysql_query("SELECT id,foto,comentario_foto FROM fotos_miweb", $conexion);
  13.                                        
  14.                                     //Siempre comprobar que se hayan encontrado datos en la consulta
  15.                                    
  16.                                     if (mysql_num_rows($fotos)){
  17.                                        
  18.                                     ?>
  19.                                    
  20.                                         <table class="contenedor_opcs" border="0" cellpadding="0" cellspacing="5" id="tabla_microfotos" bgcolor="#000000">
  21.  
  22.                                     <?php
  23.    
  24.                                         $i = 0;
  25.                                        
  26.                                         while ($row = mysql_fetch_array($fotos)){
  27.                                            
  28.                                             $f[$i]["foto"] = $row['foto'];
  29.                                            
  30.                                             $f[$i]["comentario_foto"] = $row['comentario_foto'];
  31.                                            
  32.                                             $i++;
  33.                                            
  34.                                         }
  35.  
  36.                                         $grupo = array_chunk($f, 6);
  37.                                      
  38.                                         foreach ($grupo as $sub_grupo){
  39.                                            
  40.                                     ?>
  41.                                    
  42.                                             <tr>
  43.                                            
  44.                                     <?php
  45.                                             foreach ($sub_grupo as $foto){        
  46.                                     ?>
  47.                                    
  48.                                                  <td align='center' valign='middle' height='133px' width='145px'>
  49.  
  50.  
  51.  
  52.                                     <?php
  53.  
  54.                                         if(empty($foto['foto'])) {
  55.                                                                
  56.                                         $foto['foto']="imagenes/micro_foto_por_defecto.jpg";
  57.                                        
  58.                                     ?>
  59.                                    
  60.                                          <img src = '<?=$foto['foto']?>'/>
  61.                                          
  62.                                     <?php
  63.                                    
  64.                                         }
  65.                                                            
  66.                                         else {
  67.  
  68.                                     ?>
  69.  
  70.  
  71.                                                     <a href='<?=$foto['foto']?>' rel='lightbox' title='<?=$foto['comentario_foto']?>'>
  72.                                                            
  73.                                                             <img src = '<?=$foto['foto']?>' class='sombra_blanca' style='max-height: 105px; max-width: 115px;' />
  74.                                                            
  75.                                                     </a>  
  76.                            
  77.                                      
  78.                                                 </td>
  79.                                                
  80.                                                
  81.                                     <?php
  82.                                             }
  83.                                     ?>                                                
  84.                                                
  85.                                                
  86.                                                
  87.                                     <?php
  88.                                             }
  89.                                     ?>
  90.                                    
  91.                                             </tr>
  92.                                            
  93.                                     <?php
  94.                                         }
  95.                                     ?>
  96.                                    
  97.                                         </table>
  98.                                        
  99.                                     <?php
  100.                                    
  101.                                         //Siempre liberar a la memoria de los datos de la consulta cuando ya no necesite
  102.                                         mysql_free_result($fotos);
  103.                                     }
  104.                                     else
  105.                                         echo 'No se encontraron datos en la consulta';
  106.                                        
  107.                                     ?>
  108.  
  109.                                     </div>
  110.                                    
  111.                                 </div>



Codigo que genera una miniatura de una imagen grande con libreria gd:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     //Ruta de la imagen original
  4.    
  5.     $rutaImagenOriginal="./opcs/opc_fotos/galeria_1/los_vengadores.jpg";
  6.  
  7.  
  8.     //Creamos una variable imagen a partir de la imagen original
  9.     $img_original = imagecreatefromjpeg($rutaImagenOriginal);
  10.    
  11.     //Se define el maximo ancho o alto que tendra la imagen final
  12.     $max_ancho = 200;
  13.     $max_alto = 200;
  14.    
  15.     //Ancho y alto de la imagen original
  16.     list($ancho,$alto)=getimagesize($rutaImagenOriginal);
  17.    
  18.     //Se calcula ancho y alto de la imagen final
  19.     $x_ratio = $max_ancho / $ancho;
  20.     $y_ratio = $max_alto / $alto;
  21.    
  22.     //Si el ancho y el alto de la imagen no superan los maximos,
  23.     //ancho final y alto final son los que tiene actualmente
  24.     if( ($ancho <= $max_ancho) && ($alto <= $max_alto) ){//Si ancho
  25.         $ancho_final = $ancho;
  26.         $alto_final = $alto;
  27.     }
  28.     /*
  29.      * si proporcion horizontal*alto mayor que el alto maximo,
  30.      * alto final es alto por la proporcion horizontal
  31.      * es decir, le quitamos al alto, la misma proporcion que
  32.      * le quitamos al alto
  33.      *
  34.     */
  35.     elseif (($x_ratio * $alto) < $max_alto){
  36.         $alto_final = ceil($x_ratio * $alto);
  37.         $ancho_final = $max_ancho;
  38.     }
  39.     /*
  40.      * Igual que antes pero a la inversa
  41.     */
  42.     else{
  43.         $ancho_final = ceil($y_ratio * $ancho);
  44.         $alto_final = $max_alto;
  45.     }
  46.    
  47.     //Creamos una imagen en blanco de tamaño $ancho_final  por $alto_final .
  48.     $tmp=imagecreatetruecolor($ancho_final,$alto_final);   
  49.    
  50.     //Copiamos $img_original sobre la imagen que acabamos de crear en blanco ($tmp)
  51.     imagecopyresampled($tmp,$img_original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
  52.    
  53.     //Se destruye variable $img_original para liberar memoria
  54.     imagedestroy($img_original);
  55.    
  56.  
  57.  
  58.     Header("Content-type: image/jpeg");
  59.    
  60.     imagejpeg($tmp);
  61.    
  62.  
  63. ?>
  #2 (permalink)  
Antiguo 13/03/2014, 10:00
 
Fecha de Ingreso: noviembre-2012
Mensajes: 74
Antigüedad: 11 años, 4 meses
Puntos: 3
Respuesta: Implementar libreria GD a galeria de imagenes

La libreria GD utiliza un archivo de imagen para generar la miniatura, y la galeria utiliza imagenes en una base de datos (supongo que en tipo BLOB o en base64).
Entonces solo tienes que cambiar la instrucción de la libreria GD para que genere la miniatura de un string.

Código PHP:
//Lo que tienes ahora
$img_original imagecreatefromjpeg($rutaImagenOriginal);
//Si es blob deberia ser
$img_original imagecreatefromstring($row['foto']);
//Si es base64 deberia ser
$img_original imagecreatefromstring(base64decode($row['foto'])); 

Etiquetas: galeria, imagenes, implementar, libreria, mysql, select, tabla, variable
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 01:15.