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 : 13878  
 
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

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…

Renderización lado servidor de Vue.js on Php

¿Intentas que el renderizado del lado del servidor funcione con PHP para renderizar tu aplicación Vue.js pero se atasca? Hay un montón de grandes recursos por ahí, pero hasta ahra no…

Cómo instalar Caddy Web Server con PHP-FPM en Ubuntu 16.04

El Caddy o Caddy web server es un servidor web de código abierto habilitado para HTTP/2 escrito en Go. Caddy puede funcionar en varios sistemas, incluyendo los que funcionan con…

PHP: como soluciónar el error «The e modifier is no longer supported»

Desde la versión 7 ya tenemos error al usar el modificador e con el preg_replace(). de hecho el modificador e, correspondiente a la constante PCRE PREG_REPLACE_EVAL, era antes utilizado en…

Cómo obtener el token de acceso a Instagram usando PHP

Cómo obtener el token de acceso a Instagram usando PHP? Para obtener el token de acceso Instagram, primero debes autenticar tu aplicación y luego obtener el token de acceso. Sigue los siguientes…

Clicky