Hola amigos, espero que me puedan orientar con un problema que no encuentro el posible fallo.
He creado un código php para subir imágenes, todo funciona correcto, excepto que al subir las imágenes y verlas una vez están cargadas en la carpeta de destino las imágenes están pixeladas. El código que uso redimensiona las imágenes a escala antes de subirlas al servidor...no se donde puede estar el fallo.
Pongo el código esperando que alguien sepa porque puede pasar eso...
Código PHP:
<?php
if($_FILES['file']['name']!="") {
$Nombre = time().".jpg";
$nuevoNombre = "coches_de_segunda_mano".$Nombre;
} else {
$nuevoNombre = "coche-sin-imagen.jpg";
}
// Donde guardamos la imagen
$carpeta = 'upload';
// Leemos el tamaño del fichero
$tamano = $_FILES["file"]['size']; /* Tamaño del archivo en bytes */
$tipo = $_FILES["file"]['type']; /* Extencion del archivo */
$archivo = $_FILES["file"]['name']; /* Nombre del archivo */
$Proporciones_Archivo = getimagesize($_FILES["file"]['tmp_name']); /* Obtencion de las proporciones del archivo */
$ancho = $Proporciones_Archivo[0]; /* Proporcion en Ancho */
$alto = $Proporciones_Archivo[1]; /* Proporcion en Alto */
$Temporal_Archivo = $_FILES["file"]['tmp_name'];
$imagen = $nuevoNombre; /* Nombre real de la imagen */
$destino = $carpeta.$imagen;
if (is_uploaded_file($Temporal_Archivo)){
move_uploaded_file($Temporal_Archivo, $destino);
$Origen = imagecreatefromjpeg($destino); /* Crea una imagen en base de otra imagen */
if ($Origen) {
$ancho = ImagesX($Origen);
$alto = ImagesY($Origen);
if($ancho > $alto){
$t_ancho = 400;
$t_alto = $t_ancho * $alto / $ancho;
} else {
$t_alto = 301;
$t_ancho = $t_alto * $ancho / $alto;
}
$Nueva_Imagen = imagecreatetruecolor($t_ancho, $t_alto);
imagecopyresized($Nueva_Imagen, $Origen, 0, 0, 0, 0, $t_ancho, $t_alto, $ancho, $alto); /* Modifica la imagen cargada y la agrega a la imagen en Blanco */
imagejpeg($Nueva_Imagen, $destino, 15); /* Remplaza la imagen */
}
}
?>
Gracias y un saludo!