Comunidad de diseño web y desarrollo en internet online

Error al redimensionar imágenes

Citar            
MensajeEscrito el 20 Sep 2011 05:24 pm
Hola, soy nuevo en esto del php, los poco scripts que he hecho por ahora, han funcinado a base de chicle y clips.

Intento hacer un script que al enviarle una imagen me devuelva otra de 400x300 px. Este es el código que se encarga de cortarla

Código PHP :

list($ancho_orig, $alto_orig) = getimagesize($nombre_archivo);

$ratio_orig = $ancho_orig/$alto_orig;
$ratio = $ancho/$alto;

if ($ratio_orig>$ratio) {
   //Mes ampla que alta
   $y = 0;
   $x = ($ancho_orig-$alto_orig*$ratio)/2;
   $ancho_orig = $alto_orig*$ratio;
}else {
   //Mes llarga que ampla
   $x = 0;
   $y = 0;/*($alto_orig-$ancho_orig*$ratio)/2;
   $alto_orig = $ancho_orig/$ratio;*/
}

// Redimensionar
$image_p = imagecreatetruecolor($ancho, $alto);
$image = imagecreatefromjpeg($nombre_archivo);
imagecopyresampled($image_p, $image, 0, 0, $x, $y, $ancho, $alto, $ancho_orig, $alto_orig);


Luego ya la convierto a png y la muestro por el navegador. Cuando la imagen es más hancha que larga todo funciona Ok. Pero cuando es más larga (height mayor) El navegador me devuelve que no se puede mostrar la imagen porque contiene errores.

Llevo ya un buen rato dándole vueltas y seguro que es una chorrada de error, pero mira, no lo encuentro. A ver si le hechaís un ojo al código y me decís que es lo que está cascando

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Sep 2011 05:32 pm
Se me olvidó decir que si la imagen vertical tienes más de 400px de hancho si que me la corta, pero empieza en 0,0

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Sep 2011 05:51 pm
Vale, fallo tonto mio. Moderadores, borrad este post

Por Cagarnera

Claber

158 de clabLevel



 

firefox
Citar            
MensajeEscrito el 20 Sep 2011 05:55 pm
El error estaba en la linea de

$y = ($alto_orig-$ancho_orig*$ratio)/2;

que debería ser:

$y = ($alto_orig-$ancho_orig/$ratio)/2;

Por si a alguien le interesa el tema

Por Cagarnera

Claber

158 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.