Foros del Web » Programando para Internet » PHP »

Redimensionar y mostrar no lo consigo

Estas en el tema de Redimensionar y mostrar no lo consigo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/11/2013, 10:36
 
Fecha de Ingreso: noviembre-2013
Mensajes: 1
Antigüedad: 11 años
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
  #2 (permalink)  
Antiguo 23/11/2013, 11:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Redimensionar y mostrar no lo consigo

Tu función de cambiartam() siempre guarda sobre el mismo archivo, siempre devuelve el mismo valor.

¿No crees que ahí está el problema de que te de los mismos resultados siempre?

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: redimensionar
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 21:20.