PHP - porque se escala así

 
Vista:

porque se escala así

Publicado por HAL9000 (12 intervenciones) el 15/11/2006 20:53:11
Hola a tod@s:

Vereis tengo un formulario que envía la imagen al servidor con un codigo php para escalarla pero cuando las imagenes varian mucho entre el alto y largo se reescalan pero mal, comiendose parte de la imagen en los laterales.
Es esto normal?Existe un limite para reescalarla a lo ancho o alto?
Muchas gracias os paso el codigo del escaladoc por si veis algo raro

Gracias de antemano

<?php

function sube_foto($temporal, $d_ancho, $d_alto, $nombre, $extension){

switch($extension){
case '.gif' :
$image = imagecreatefromgif($temporal);
break;
case '.png' :
$image = imagecreatefrompng($temporal);
break;
case '.jpg' :
$image = imagecreatefromjpeg($temporal);
break;
}

// Nuevas dimensiones
list($org_ancho, $org_alto) = getimagesize($temporal);
if($d_ancho/$d_alto > $org_ancho/$org_alto){
$nuevo_ancho = $d_ancho;
$nuevo_alto = $org_alto * ($d_ancho / $org_ancho);
}else{
$nuevo_ancho = $org_ancho * ($d_alto / $org_alto);
$nuevo_alto = $d_alto;
}

// Redimension
$image_p = imagecreatetruecolor($nuevo_ancho, $nuevo_alto);
$image_f = imagecreatetruecolor($d_ancho, $d_alto);
imagecopyresized($image_p, $image, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $org_ancho, $org_alto);

// Adjuste posicion
$x = ($nuevo_ancho - $d_ancho) / 2;
$y = ($nuevo_alto - $d_alto) / 2;

//Thumb
imagecopyresampled($image_f, $image_p, 0, 0, $x, $y, $d_ancho, $d_alto, $d_ancho, $d_alto);

imagejpeg($image_f, $nombre, 100);
chmod($nombre, 0777);

return true;
}

?>

y lo llamo en otra página con:

sube_foto($temporal, 130, 80, $ruta_srv.$nombre, $extension);
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder