Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2011, 06:32
Avatar de raulbaena
raulbaena
 
Fecha de Ingreso: agosto-2011
Ubicación: Sevilla
Mensajes: 3
Antigüedad: 12 años, 8 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.