Las imágenes de alta calidad tardan en cargarse en la página web dependiendo del número de imágenes.
Puede crear varios tamaños del archivo de imagen al cargar y usar las imágenes de baja y alta calidad cuando sea necesario.
Al reducir el tamaño de una imagen, también disminuye su calidad.
El mejor ejemplo de esto es WordPress, cada vez que se carga un archivo de imagen, generará un tamaño diferente del archivo. Esas imágenes se utilizarán en el tema de acuerdo con los requisitos.
En este tutorial, muestro cómo puede comprimir el tamaño de la imagen mientras carga con PHP.
Contenido
- HTML
- PHP
- Conclusión
1. HTML
Crea un elemento <input type='file'>
en <form>
y el botón enviar.
Código completado
<form method='post' action='' enctype='multipart/form-data'> <input type='file' name='imagefile' > <input type='submit' value='Upload' name='upload'> </form>
2. PHP
Crea un directorio images
para almacenar archivos de imagen.
Función personalizada
Cree una función compressImage()
para comprimir imágenes JPEG, PNG y GIF.
La función toma 3 parámetros –
1. Fuente
2. Destino
3. Calidad de archivo
Llame a imagecreatefromjpeg($source)
, imagecreatefromgif($source)
y imagecreatefrompng($source)
para crear una nueva imagen de acuerdo con el valor $info
.
Ejecutar el método imagejpeg()
para almacenar la imagen en el destino. Aquí, el tercer parámetro quality
es opcional. Toma valor de 0 a 100 y el valor predeterminado es 75.
Enviar formulario
Establezca la ubicación en el directorio images
y verifique la extensión del archivo. Si es válido, llame a la función compressImage()
donde pase $_FILES
,$location
y 60
.
Código completado
<?phpif(isset($_POST)){ // Getting file name $filename = $_FILES; // Valid extension $valid_ext = array('png','jpeg','jpg'); // Location $location = "images/".$filename; // file extension $file_extension = pathinfo($location, PATHINFO_EXTENSION); $file_extension = strtolower($file_extension); // Check extension if(in_array($file_extension,$valid_ext)){ // Compress Image compressImage($_FILES,$location,60); }else{ echo "Invalid file type."; }}// Compress imagefunction compressImage($source, $destination, $quality) { $info = getimagesize($source); if ($info == 'image/jpeg') $image = imagecreatefromjpeg($source); elseif ($info == 'image/gif') $image = imagecreatefromgif($source); elseif ($info == 'image/png') $image = imagecreatefrompng($source); imagejpeg($image, $destination, $quality);}?>
3. Conclusión
En el ejemplo, almacené solo la imagen comprimida, no la imagen de tamaño original. Puede almacenar la versión de las imágenes mientras carga.
Ajuste la calidad de imagen al reducir el tamaño.
Si te ha parecido útil este tutorial, no olvides compartirlo.