Webp est un format d'image développé par Google (voir Un format d'image pour le Web et WebP)
Pour convertir une image en webp en utilisant python, il existe plusieurs solutions :
Avec Pillow
Une première solution consiste à utiliser une version récente de Pillow qui supporte webp. Pour installer Pillow :
pip install --upgrade pip
puis entrez
pip install Pillow
Maintenant en utilisant python :
from PIL import Image
Ouvrez une image existante :
image = Image.open('example.png')
et changer le format de l'image en webp :
image.save('example.webp', format="webp")
Convertir un ensemble d'images situées dans un répertoire en webp
Obtenir une liste de toutes les images sous un répertoire donné :
import glob
path_to_src = '/Users/Student/Desktop/Images/src'
images = glob.glob('{}/*'.format(path_to_src))
Maintenant, enregistrons toutes les nouvelles images dans le répertoire '/Users/Student/Desktop/Images/webp' :
for image in images:
new_image_path = image.split('.')[0]+'.webp'
new_image_path = new_image_path.replace('src','webp')
image_obj = Image.open(image)
image_obj.save(new_image_path, format="webp") webp
Utilisation directe des bibliothèques Webp
Sur Ubuntu, j'ai le message d'erreur suivant :
File "/home/daidalos/anaconda3/lib/python3.7/site-packages/PIL/Image.py", line 2073, in save
save_handler = SAVE[format.upper()]
KeyError: 'WEBP'
J'ai donc essayé une solution alternative :
Exemple sur Ubuntu
sudo apt install webp
alors pour convertir une image en webp une solution est de faire
cwebp example.png -o example.webp
En utilisant python
import os
cmd = 'cwebp {} -o {}'.format('example.png','example.webp')
os.system(cmd)
Avec plusieurs images
import glob
import os
path_to_src = '/Users/Student/Desktop/Images/src'
images = glob.glob('{}/*'.format(path_to_src))
for image in images:
new_image_path = image.split('.')[0]+'.webp'
new_image_path = new_image_path.replace('src','webp')
cmd = 'cwebp {} -o {}'.format(image,new_image_path)
os.system(cmd)
Exemple sur Macos
Sur Macos, on peut installer webp en passant par brew
brew install webp
on peut alors aussi utiliser cwebp pour changer le format d'une image en webp"
cwebp example.png -o example.webp
En utilisant python
import os
cmd = 'cwebp {} -o {}'.format('example.png','example.webp')
os.system(cmd)
Avec plusieurs images
import glob
import os
path_to_src = '/Users/Student/Desktop/Images/src'
images = glob.glob('{}/*'.format(path_to_src))
for image in images:
new_image_path = image.split('.')[0]+'.webp'
new_image_path = new_image_path.replace('src','webp')
cmd = 'cwebp {} -o {}'.format(image,new_image_path)
os.system(cmd)
Articles Similaires
Liens | Site |
---|---|
Comment ajouter un fichier robots.txt pour une App Django ? | moonbooks.org |
Comment créer son propre sitemap en utilisant une vue avec Django ? | moonbooks.org |
Comment créer un sitemap avec le web-framework Django ? | moonbooks.org |