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!