Optimización de imágenes compatible con WebP
Podríamos haber hablado de ello en nuestra entrada sobre el
rendimiento de los parachoques, pero aún no estaba listo para mostrarlo. (He empezado a trabajar en ello esta semana y todavía no domino el arte de viajar en el tiempo).
Inicialmente, el alcance de nuestro soporte WebP en XenForo 2.3 era simplemente permitir a los usuarios subir archivos WebP y que se mostraran correctamente en línea. Esto habría sido un cambio positivo por sí mismo, ya que el formato se vuelve más frecuente en la web, pero no hace mucho por sí solo para resolver el problema del uso del disco que, por supuesto, también tiene un efecto positivo en el rendimiento.
Pero esto no es suficiente.
Si desea optimizar automáticamente todas las imágenes que suba en el futuro, sólo tiene que activar esta opción.
Al cargarlas, todos los tipos de imagen admitidos actualmente (excepto los GIF) se guardarán en formato WebP.
Nota al margen: Como ocurre ahora, las miniaturas, los banners de perfil y los avatares (y cualquier otra cosa que tenga un nombre de archivo establecido mediante programación) se servirán con una extensión .jpg, independientemente del formato de archivo subyacente.
Si tiene tipos de contenido personalizados que ya utilizan el sistema de archivos adjuntos, como hacemos con la Galería multimedia y el Gestor de recursos, las imágenes cargadas en ellos también se optimizarán automáticamente.
De hecho, si su complemento gestiona las subidas mediante el método predeterminado, es decir, la clase XF\Http\Upload, todas las nuevas subidas de imágenes se optimizarán automáticamente. Esto se extiende a casi todos los sistemas que tenemos, incluido el sistema de carga de activos del administrador.
Como desarrollador, si usted desea optar por este comportamiento por cualquier razón, puede hacerlo con el siguiente one-liner:
PHP:
$upload->setImageOptimize(false);
Esto se refiere a futuras subidas, pero muchos de vosotros os preguntaréis cómo optimizar los archivos existentes. Así que te alegrará saber que puedes reconstruir automáticamente todos tus archivos adjuntos, avatares y banners de perfil existentes.
Estas son las típicas reconstrucciones que puede iniciar desde su panel de control de administración en la página "Reconstruir cachés".
Dado que se trata de un proceso bastante largo e intensivo, si prefieres ejecutarlo sin el riesgo de que el navegador deje de funcionar y sin supervisión, también puedes utilizar uno de los comandos integrados:
Código:
xf-rebuild:attachment-optimization
xf-rebuild:avatar-optimization
xf-rebuild:profile-banner-optimization
Como desarrollador, añadir soporte para tus propios tipos de contenido es trivial extendiendo la clase
AbstractImageOptimizationJob
.
Ya hemos ejecutado esto en una copia de desarrollo del foro de la Comunidad XenForo. Al hacerlo, el tamaño de archivo indicado en la tabla
xf_attachment_data
antes de la conversión era de unos 40 GB.
Tras la conversión, el tamaño del archivo es de unos 19 GB.
Se trata de un ahorro significativo y también tendrá un impacto positivo en el rendimiento.
Las noticias "no tan buenas"
WebP ya es compatible con los principales navegadores. Cualquiera que utilice un navegador actualizado no experimentará ningún problema con la visualización de imágenes. Sin embargo, algunos dispositivos Apple y navegadores anteriores a septiembre de 2020 no soportan WebP.
En concreto, si utilizas iOS 14 o superior, no hay ningún problema. Safari 14 y superior también es genial, pero debes estar ejecutando al menos macOS 11 Big Sur para que las imágenes WebP se muestren.
En navegadores anteriores, estos usuarios simplemente no verán las imágenes WebP en absoluto. Aparecerán como imágenes rotas.
A medida que pasa el tiempo, este problema va disminuyendo a medida que la gente actualiza su software y hardware. Pero es algo que debe tener en cuenta antes de convertir todas las imágenes a WebP.