Foros del Web » Programando para Internet » PHP »

Collage de imagenes

Estas en el tema de Collage de imagenes en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/08/2011, 06:32
Avatar de raulbaena  
Fecha de Ingreso: agosto-2011
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 12 años, 7 meses
Puntos: 0
Collage de imagenes

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:

<?php
function hacerThumb($archivo,$num) {
$im_origen = imagecreatefromjpeg($archivo);
$ancho = imagesx($im_origen);
$alto = imagesy($im_origen);

//si es mas ancha que alta
if ($ancho>$alto){

$nuevo_alto = 103;
$nuevo_ancho = round(($ancho*$nuevo_alto)/$alto);
$x = ($ancho-$alto)/2;
$y = 0;
}
else {

$nuevo_ancho = 103;
$nuevo_alto = round(($nuevo_ancho*$alto)/$ancho);
$y = ($alto-$ancho)/2;
$x = 0;
}


$im_destino1 = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
imagecopyresampled($im_destino1, $im_origen, 0, 0, $x, $y, $nuevo_ancho, $nuevo_alto, $ancho, $alto);
// ahora im_destino es la mitad de grande que im_origen
//75, 75 es el ancho y el alto de la nueva imagen recortada, modificar si se desean otras dimensiones
$im_destino2 = imagecreatetruecolor(103, 103); //im_destino contendra la nueva imagen recortada
// Ahora im_destino es im_origen recortada por abajo y por la derecha
//75, 75 es el ancho y el alto de la nueva imagen recortada, modificar si se desean otras dimensiones
imagecopy($im_destino2, $im_destino1, 0, 0, 0, 0, 103, 103);

//header("Content-type: image/jpeg");
imagejpeg($im_destino2,"nueva".$num.".jpg");
return "nueva".$num.".jpg";

}

function imagenAleatoria($numGaleria, $numImagenes) {

//generamos un número aleatorio
$num = rand(1, $numImagenes);

//concatenamos todo
$imagen = "images/galeria" . $numGaleria . "/" . $num . ".jpg";

return $imagen;
}
?>



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

<script language="JavaScript" src="mm_menu.js"></script>
<?php
include 'imagen.php';
//numero total de imagenes por galeria
$totalImagenes = 10;
//numero total galerias
$totalGalerias = 8;



?>



y en el bodoy:

<?php
//borra todas las miniaturas creadas anteriormente
for ($i = 1; $i <= $totalGalerias; $i++) {
$muestra="nueva".$i.".jpg";
@unlink($muestra);
}

//crea una miniatura al azar por cada galeria
for ($i = 1; $i <= $totalGalerias; $i++) {
//llama a la funcion de imagen.php y crea la miniatura de la imagen
$thumb=hacerThumb(imagenAleatoria($i, $totalImagenes),$i);
echo "<img src=\"" . $thumb . "\">";

if ($i == 4) {//para poner 4 imagenes y debajo las otras cuatro
echo "</td></tr><tr><td>";
}
}

?>


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.
  #2 (permalink)  
Antiguo 27/08/2011, 09:35
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Collage de imagenes

Raulbaena, bienvenido a ForosDelWeb.

El color elegido para mostrar tu codigo no ayuda para tratar de ayudarte. En los botones donde elegiste el color, hasta la derecha hay un select (menu desplegable) que dice "Highlight", haces click ahi, seleccionas el lenguaje (o tipo) y te escribira algo como [LENGUAJE][/LENGUAJE], solo pega tu codigo ahi y listo.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 28/08/2011, 09:20
Avatar de raulbaena  
Fecha de Ingreso: agosto-2011
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 12 años, 7 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.

Etiquetas: 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 09:29.