El 30 de septiembre de 2010, Google anunció la publicación de un nuevo estándar abierto para la compresión con pérdida de gráficos de 24 bits en la web. La base para este estándar fue el formato de vídeo VP8, desarrollado por On2 Technologies, empresa que Google adquirió el mismo año.
Google trabajó para ampliar el formato WebP con características tales como un modo de compresión sin pérdida, transparencia (canal alfa) y animaciones.
Chrome soporta el formato de compresión desde finales de 2010, pero hasta ahora, algunos navegadores solo soportan WebP de forma experimental (cuyas actualizaciones regulares siguen sin ofrecer soporte), mientras que Safari, sigue sin soportar e formato.
Se puede encontrar información actualizada sobre el soporte de WebP en caniuse.com.
En este tutorial, explicaremos cómo convertir una imagen png, jpg a webp en PHP.
Para convertir imágenes de otros formatos a webp, debemos usar la función php imagewebp():
imagewebp ( resource $image [, mixed $to = NULL [, int $quality = 80 ]] ) : bool
Esta función puede guardar o sacar una imagen webp de otros tipos de imágenes.
Esta función acepta tres parámetros:
1. $image: Especifica la imagen en el que se quiere trabajar.
2. $to (Opcional): Especifica la ruta para guardar el archivo.
3. $quality (Opcional): Especifica la calidad de la imagen.
Aquí os presentamos una función para convertir imágenes png en webp.
function convertImageToWebP($source, $destination, $quality=80) {
$extension = pathinfo($source, PATHINFO_EXTENSION);
if ($extension == 'jpeg' || $extension == 'jpg')
$image = imagecreatefromjpeg($source);
elseif ($extension == 'gif')
$image = imagecreatefromgif($source);
elseif ($extension == 'png')
$image = imagecreatefrompng($source);
return imagewebp($image, $destination, $quality);
}
¿Cómo funciona esta función?
En primer lugar, obtenemos el formato de la imagen de origen por medio de pathinfo().
$extension = pathinfo($source, PATHINFO_EXTENSION);
Luego, creamos una imagen por tipo de imagen:
if ($extension == 'jpeg' || $extension == 'jpg') $image = imagecreatefromjpeg($source); elseif ($extension == 'gif') $image = imagecreatefromgif($source); elseif ($extension == 'png') $image = imagecreatefrompng($source);
Y finalmente, conviertimos png, jpg a imagen webp:
return imagewebp($image, $destination, $quality);Business vector created by freepik - www.freepik.com