Hola. Tengo una consulta sobre la calidad de imagen al redimensionar con PHP
Tengo una función en php que cambia el tamaño de una foto grande a una pequeña, pero se pierde la calidad de la imagen y se ve extraña.
Existe alguna solución para mantener la calidad de imagen al redimensionar con php?
Dejo mi página donde aparecen las imágenes:
http://www.publicalibre.cl
Dejo mi código:
Código PHP:
Ver originalif (isset($_FILES['file'])){
if($_FILES['file']['tmp_name']){
// Creamos la cadena aletoria
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$cad = "";
for($i=0;$i<12;$i++) {
}
// Fin de la creacion de la cadena aletoria
$tamano = $_FILES[ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
$tamaño_max = "3000000"; // Tamaño maximo permitido [3MB]
if( $tamano < $tamaño_max){ // Comprovamos el tamaño
$destino = 'uploads/tmp' ; // Carpeta donde se guardata
$sep = explode('image/',$_FILES["file"]["type"]); // Separamos image/ $tipo = $sep[1]; // Optenemos el tipo de imagen que es
if($tipo == "PNG" || $tipo == "png" || $tipo == "gif" || $tipo == "pjpeg" || $tipo == "bmp" || $tipo == "GIF" || $tipo == "JPG" || $tipo == "jpg" || $tipo == "JPEG" || $tipo == "jpeg"){// Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $destino . '/' .$cad.'.'.$tipo); // Subimos el archivo $_SESSION['Imagen'] = $cad.'.'.$tipo;
}else{
// Si la extensión no es correcta
echo "NOTA: Imagen con extensión no permitida.";
}
}else{
// Si supera el tamaño de permitido lo desimos
echo "NOTA: El archivo supera el tamaño permitido.";
}
}
if(isset($_SESSION['Imagen'])){
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
// Crear una imagen desde el original
// Crear una imagen nueva
// Redimensiona la imagen original copiandola en la imagen
// Guardar la nueva imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad); }
$origen="uploads/tmp/".$_SESSION['Imagen']."";
$destino="uploads/".$_SESSION['Imagen']."";
$destino_temporal=tempnam("uploads/tmp/","tmp");
redimensionar_jpeg($origen, $destino_temporal, 200, 200, 200);
// Guardamos la imagen
// Borramos la Imagen de Origen y la de Destino Temporal /tmp
if($destino_temporal){
}
}
}