estoy haciendo una aplicación y al realizar la redimensión de las imágenes al subirlas, algunas de ellas me aparecen algo desconfiguradas (por llamarlo de alguna forma):
El código es el siguiente:
Código PHP:
$foto->insert($conexion);
$nuevo_id = mysql_insert_id();
echo(mysql_error());
//LA AÑADIMOS FÍSICAMENTE
$uploaddir="./fotos_inmuebles/ref_". $foto->referencia."/"; $nombre_fichero=$nuevo_id."_".$foto->nombre . strrchr($HTTP_POST_FILES['archivo']['name'],'.');
$especiales = array("á","é","í","ó","ú","ñ","Á","É","Í","Ó","Ú","Ñ");
$correc_especiales = array("a","e","i","o","u","ny","A","E","I","O","U","NY");
$nombre_fichero = str_replace($especiales,$correc_especiales,$nombre_fichero);
$uploadfile = $uploaddir . $nombre_fichero;
if(!move_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'], $uploadfile))
{
print("<script>alert('No se ha copiado la foto');</script>");
}
$origen=$uploadfile;
$destino=$uploadfile;
$destino_temporal=tempnam("./tmp/","tmp");
redimensionar_jpeg($origen, $destino_temporal, 600, 450, 100);
// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
fclose($fp);
chmod($destino, 0755);
$foto->updateNombreFichero($conexion,$uploadfile,$nuevo_id);
echo(mysql_error());
Código PHP:
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
// crear una imagen desde el original
$img = ImageCreateFromJPEG($img_original);
// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
// redimensiona la imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
ImageDestroy($img);
}
¿Alguna idea de por qué ocurre esto?
Un saludo y gracias