Guía sencilla para convertir imágenes a WebP en PHP

by Silvia Mazzetta Date: 03-04-2023 php imagenes webp compresor

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
 
by Silvia Mazzetta Date: 03-04-2023 php imagenes webp compresor visitas : 15186  
 
Silvia Mazzetta

Silvia Mazzetta

Web Developer, Blogger, Creative Thinker, Social media enthusiast, Italian expat in Spain, mom of little 9 years old geek, founder of  @manoweb. A strong conceptual and creative thinker who has a keen interest in all things relate to the Internet. A technically savvy web developer, who has multiple  years of website design expertise behind her.  She turns conceptual ideas into highly creative visual digital products. 

 
 
 

Artículos relacionados

Guía para enviar Facturas Electrónicas a Agencia Tributaria Española con PHP

En este artículo, te explicaremos paso a paso cómo comunicarte con el servicio XML de Hacienda Española para enviar facturas electrónicas utilizando PHP. Este enfoque es ideal para empresas o…

Novedades de PHP 8.4: Un Salto Evolutivo para el Desarrollo Web

PHP sigue siendo uno de los lenguajes de programación más utilizados para el desarrollo web, y con cada versión nueva, el lenguaje se adapta a las necesidades modernas de los…

Cómo configurar PHP en Caddy Server

Caddy Server es una plataforma de servidor web modular y moderna que soporta certificados HTTPS automáticos, QUIC y HTTP/2, compresión Zstd y Brotli, y varias características modernas, así como características…

Guía Básica: Cómo Integrar una Base de Datos ArangoDB con PHP

ArangoDB es una base de datos multi-modelo que ofrece una combinación poderosa de características de base de datos documental, de grafos y de clave-valor. Su flexibilidad y rendimiento la convierten…

Seguimiento en tiempo real de los vuelos: la API de Flight Tracker

La API de Flight Tracker brinda a los desarrolladores la capacidad de acceder al estado de los vuelos en tiempo real, lo cual resulta extremadamente útil para integrar un seguimiento…

Ejecución de funciones PHP en AWS Lambda y API Gateway

¿Qué es AWS Lambda? AWS Lambda es un servicio de procesamiento sin servidor que puede ejecutar código en respuesta a eventos o condiciones predeterminados y administrar automáticamente todos los recursos de…

Cómo enviar un correo electrónico desde un formulario de contacto HTML

En el artículo de hoy vamos a escribir sobre cómo hacer un formulario que funcione y que al pulsar ese botón de envío sea funcional y envíe el correo electrónico…

6 Formas de leer archivos en PHP, con strings, array y más

Bienvenido a un tutorial sobre cómo leer archivos en PHP. Sí, así es, ¿qué tan difícil puede ser leer archivos en PHP? Se sorprenderá... No es tan sencillo como algunos…

Instalar Laravel Homestead en Windows 10

Instalar Homestead Mediante Vagrant Laravel Homestead es una máquina virtual que viene ya preparada para el desarrollo de proyectos con Laravel y otras tecnologías de PHP . Al ser una máquina…

Imágenes generadas por GAN

Juguemos a un juego... ¿Adivinas qué tienen en común estos retratos?   Todas estas son personas inexistentes. Las imágenes fueron creadas por una inteligencia artificial. Podríamos decir que la IA "soñó" con…

Cookies HTTP: cómo funcionan y cómo usarlas

Hoy vamos a escribir sobre la forma de almacenar datos en un navegador, por qué los sitios web utilizan cookies y cómo funcionan en detalle. Continúa leyendo para averiguar cómo implementarlas…

PHP 8.0: mas rápido que nunca con el compilador JIT

Probablemente ya habéis oido la noticia hace unos meses de que el compilador JIT será agregado a PHP 8. Ya desde PHP 7.0, se han hecho cambios para mejorar el…