Convertir a avif con Python

힘센캥거루
2025년 1월 13일(수정됨)
2
58

Revisando el PageSpeed Insights del blog, noté que la carga de imágenes estaba tomando demasiado tiempo.

Fue el momento en que me di cuenta de que necesitaba una optimización de imágenes.

Originalmente usaba el formato webp, pero descubrí que avif tiene una mayor tasa de compresión, mejor compatibilidad y también admite animaciones.

Así que decidí compararlos.

Convertir a avif con Python-1

Cuando cambié el archivo png a avif, el tamaño se redujo a una décima parte.

Si fuera 2 o 3 veces no lo creería, pero 10 veces es demasiado.

Sentí que definitivamente tenía que cambiarlo.

Convertir a avif con Python-2

Con Python, es posible convertir png a avif o avif a png.

Primero, instala las librerías necesarias usando pip.

pip install pillow pillow_avif imageio

Mis imágenes están guardadas en rutas como posts/[slug]/*.png.

Por lo tanto, simplemente navega a esa ruta y convierte todos los archivos png a avif.

from PIL import Image
import pillow_avif
import imageio
import pathlib

path = pathlib.Path.cwd()
# Verifica todos los archivos en la ruta actual.
for folder in path.iterdir():
    if folder.is_dir():
        for file in folder.iterdir():
            # Si es una carpeta, verifica los archivos dentro de la carpeta.
            # Si el archivo es una imagen con extensiones como jpg, png, etc., ejecuta.
            if file.suffix in [".jpg", ".png", ".gif", ".PNG", ".JPG", ".jpeg", ".webp"]:
                img = Image.open(file)
                # Si es un archivo gif, es una animación.
                # Guarda cada imagen como un frame para convertirlo.
                if file.suffix == ".gif" :
                    frames = []
                    frame_count = 0
                    try:
                        while True:
                            current_frame = img.convert('RGB')
                            frames.append(current_frame)
                            img.seek(img.tell() + 1)
                    except EOFError:
                        pass
                    imageio.mimsave(f'{file.parent}/{file.stem}.avif', frames, format='AVIF')
                # De lo contrario, simplemente cambia la extensión y guarda.
                else:
                    img.save(f'{file.parent}/{file.stem}.avif')

Después de la conversión, una animación de 5.5MB se redujo a 500kb.

La tasa de compresión es realmente impresionante.

Convertir a avif con Python-3

Consulta el blog oficial de Netflix para conocer más sobre el rendimiento de avif.

La extensión avif sigue siendo promovida por las empresas debido a la lógica del capital, por lo que probablemente continúe avanzando.

Aplícalo en tu blog y busca también la optimización SEO.

관련 글

Automatización de tareas escolares: revisión del boletín de vida escolar con IA – Detalles de competencias por asignatura
Automatización de tareas escolares: revisión del boletín de vida escolar con IA – Detalles de competencias por asignatura
Si tuviera que escoger la tarea más insignificante, dura y aburrida en la escuela, elegiría la revisión del boletín de vida escolar.En secundaria el b...
Reseña de lectura y experiencia del desafío del capítulo 7 de "밑바닥부터 만들면서 배우는 LLM"
Reseña de lectura y experiencia del desafío del capítulo 7 de "밑바닥부터 만들면서 배우는 LLM"
El contenido del capítulo 7 trata sobre el proceso de ajustar finamente el modelo para que siga instrucciones.Es hacer que responda como se espera ant...
Reseña de lectura del capítulo 6 de "Aprendiendo LLM desde cero"
Reseña de lectura del capítulo 6 de "Aprendiendo LLM desde cero"
El capítulo 6 trata sobre el fine-tuning para clasificación.El ejemplo que aparece es la creación de un clasificador de spam.Como el clasificador de s...
Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»
Reseña de lectura del capítulo 5 de «Aprender LLM construyéndolo desde cero»
Hoy es 14 de diciembre.En realidad, el período del desafío ya terminó hace 2 semanas, pero aun así no podía renunciar a escribir la reseña.Porque esto...
Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4
Aprendiendo a crear un LLM desde cero – Reseña del capítulo 4
Hoy es 26 de noviembre, así que si leo un capítulo al día, habré completado el reto.No sé si será posible con las interrupciones del primero y del seg...
Reseña de la lectura del capítulo 3 de LLM aprendiendo desde cero
Reseña de la lectura del capítulo 3 de LLM aprendiendo desde cero
Después de derramar agua sobre mi MacBook, entré en crisis y perdí alrededor de 3 a 4 días. Ahora que lo pienso, debería haber hecho algo, pensando que mi MacBook ya estaba arruinada y que la mandaría a reparar de todas formas. Aunque estoy un poco atrasado, quiero dejar mi reseña del capítulo 3 porque creo que debo continuar hasta el final. 1. Mecanismo de atención Capítulo 3...

댓글을 불러오는 중...