Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/11/2013, 10:36
david26386
 
Fecha de Ingreso: noviembre-2013
Mensajes: 1
Antigüedad: 10 años, 5 meses
Puntos: 0
Redimensionar y mostrar no lo consigo

Hola soy nuevo por aqui y por esto de php también veréis. El tema esque tengo unas imagenes en carpeta las cuales quiero redimensionar y mostrar. Logro redimensionar , tambien leer todas las imagenes del directorio, pero el tema es que si tengo 5 imagenes en el directorio me muestra 5 imagenes redimensionadas pero siempre es la misma imagen en los 5 casos y siempre la ultima que lista del directorio. ¿Que esta pasando, que hago mal? Os muestro mi codigo de la classe donde realizo esto.

<?php

function autocarga($clase) {

include './' . $clase . '.php';
}

spl_autoload_register("autocarga");



$ruta="../";

if(is_dir($ruta)){
//Abre el directorio para leer su contenido
$imagenes=opendir($ruta);

//recorro todo el directorio guardado cada archivo
while(false!==($imagen=readdir($imagenes))){
$arrayext = explode(".", $imagen);
$num = count($arrayext) - 1;
//Siempre añade un archivo . y otro ..
if ($arrayext[$num]=="gif"||$arrayext[$num]=="jpg"||$arrayext[$num]=="png") {
$arrayimagenes[]=$ruta.$imagen;

}
}


foreach($arrayimagenes as $value){

$img2=cambiartam($value);
echo "<img src='$img2'></img><br>";

}



}

function cambiartam($nombre){


$arrayext = explode(".",$nombre);
$num = count($arrayext) - 1;
$tmp=$arrayext[$num];


if ($tmp=="jpg"){
$imagen=imagecreatefromjpeg($nombre);
}
if ($tmp=="png"){
$imagen=imagecreatefrompng($nombre);
}
if ($tmp=="gif"){
$imagen=imagecreatefromgif($nombre);
}


$ancho=imageSX($imagen);
$alto=imageSY($imagen);
$anchofinal = 200;

//Ancho final en pixeles
$altofinal = ($anchofinal / $ancho) * $alto;


//SI CONOCEMOS UN ALTO FINAL FIJO, calculamos el ANCHO de forma proporcionada

//Para usar este caso, comentar las dos lineas anteriores, y descomentar las dos siguientes a este comentario

/*$alto_final = 250; //Alto final en pixeles
$ancho_final = ($alto_final / $alto_original) * $ancho_original;*/

//Creo una imagen vacia, con el alto y el ancho que tendrá la imagen redimensionada
$imagenredimensionada = imagecreatetruecolor($anchofinal, $altofinal);

//Copio la imagen original con las nuevas dimensiones a la imagen en blanco que creamos en la linea anterior
imagecopyresampled($imagenredimensionada, $imagen, 0, 0, 0, 0, $anchofinal, $altofinal, $ancho, $alto);

//Guardo la imagen ya redimensionada
imagepng($imagenredimensionada,'imagen_redimension ada.png');

//Libero recursos, destruyendo las imágenes que estaban en memoria
imagedestroy($imagen);

imagedestroy($imagenredimensionada);

return 'imagen_redimensionada.png';

}

?>

Se que ahora mismo solo crea para imagenes png tal como esta pero estaba probando que al menos funcionara estos.

Muchas gracias. Saludos