Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/08/2011, 09:20
Avatar de raulbaena
raulbaena
 
Fecha de Ingreso: agosto-2011
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Collage de imagenes

Gracias Triby por el apunte, menuda bacalá he metido.




He usado este código para hacer un collage de ocho imagenes en una web que estoy creando.

un archivo en el raíz que se llama imagen y contiene:




Código PHP:
Ver original
  1. <?php
  2. function hacerThumb($archivo,$num) {
  3. $im_origen = imagecreatefromjpeg($archivo);
  4. $ancho = imagesx($im_origen);
  5. $alto = imagesy($im_origen);
  6.  
  7. //si es mas ancha que alta
  8. if ($ancho>$alto){
  9.  
  10. $nuevo_alto = 103;
  11. $nuevo_ancho = round(($ancho*$nuevo_alto)/$alto);
  12. $x = ($ancho-$alto)/2;
  13. $y = 0;
  14. }
  15. else {
  16.  
  17. $nuevo_ancho = 103;
  18. $nuevo_alto = round(($nuevo_ancho*$alto)/$ancho);
  19. $y = ($alto-$ancho)/2;
  20. $x = 0;
  21. }
  22.  
  23.  
  24. $im_destino1 = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
  25. imagecopyresampled($im_destino1, $im_origen, 0, 0, $x, $y, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
  26. // ahora im_destino es la mitad de grande que im_origen
  27. //75, 75 es el ancho y el alto de la nueva imagen recortada, modificar si se desean otras dimensiones
  28. $im_destino2 = imagecreatetruecolor(103, 103); //im_destino contendra la nueva imagen recortada
  29. // Ahora im_destino es im_origen recortada por abajo y por la derecha
  30. //75, 75 es el ancho y el alto de la nueva imagen recortada, modificar si se desean otras dimensiones
  31. imagecopy($im_destino2, $im_destino1, 0, 0, 0, 0, 103, 103);
  32.  
  33. //header("Content-type: image/jpeg");
  34. imagejpeg($im_destino2,"nueva".$num.".jpg");
  35. return "nueva".$num.".jpg";
  36.  
  37. }
  38.  
  39. function imagenAleatoria($numGaleria, $numImagenes) {
  40.  
  41. //generamos un número aleatorio
  42. $num = rand(1, $numImagenes);
  43.  
  44. //concatenamos todo
  45. $imagen = "images/galeria" . $numGaleria . "/" . $num . ".jpg";
  46.  
  47. return $imagen;
  48. }
  49. ?>


y en el index.php he colocado en head lo siguiente:


Código PHP:
Ver original
  1. <script language="JavaScript" src="mm_menu.js"></script>
  2. <?php
  3. include 'imagen.php';
  4. //numero total de imagenes por galeria
  5. $totalImagenes = 10;
  6. //numero total galerias
  7. $totalGalerias = 8;



y en el bodoy:



Código PHP:
Ver original
  1. <?php
  2. //borra todas las miniaturas creadas anteriormente
  3. for ($i = 1; $i <= $totalGalerias; $i++) {
  4. $muestra="nueva".$i.".jpg";
  5. @unlink($muestra);
  6. }
  7.  
  8. //crea una miniatura al azar por cada galeria
  9. for ($i = 1; $i <= $totalGalerias; $i++) {
  10. //llama a la funcion de imagen.php y crea la miniatura de la imagen
  11. $thumb=hacerThumb(imagenAleatoria($i, $totalImagenes),$i);
  12. echo "<img src=\"" . $thumb . "\">";
  13.  
  14. if ($i == 4) {//para poner 4 imagenes y debajo las otras cuatro
  15. echo "</td></tr><tr><td>";
  16. }
  17. }
  18.  
  19. ?>




luego en el raiz he creado una carpeta que se llama images y dentro ocho carpetas que se llaman desde galeria1 hasta galeria 8 y dentro de cada galería diez fotos.



Mi problema es que la web se ve perfectamente con explorer pero cuando actualizo con chrome 13.0.782.215 o con firefox 6.0 algunas imagenes no salen.


¿Dónde está el fallo?

la web está aquí para que hagan la prueba www.raulbaena.com/pruebaraul


Gracias y saludos.