ANTISECHE
Pour ne plus rien oublier !

Connaître la largeur et la hauteur d'une image GIF en pur Python

mardi 18 juin 2013

Contexte

Lorsque on utilise Tkinter pour développer des interfaces graphiques, on est alors confronté au problème de la manipulation des images GIFs. Le module Tkinter nous permet d'afficher des images GIFs mais ne propose aucune solution pour les modifier ou bien même pour connaître simplement leur dimension.

Je vous propose une solution toute simple pour récupérer les dimensions d'une image GIF.

Astuce

L'astuce est de passer par le module struct qui permet de traiter simplement les fichiers binaires. Il va ainsi nous permettre d'extraire facilement les informations de notre fichier contenant l'image au format GIF.

Les informations générales de l'image sont codées sur les 10 premiers octets de la façon suivante :

  1. Le mot « GIF » sur 3 caractères (3 octets)
  2. La version du format GIF sur 3 caractères (3 octets)
  3. La largeur sur 1 entier (2 octets)
  4. La auteur sur 1 entier (2 octets)

Code Python

Voila ce que ça peut donner en pur Python :

#!/usr/bin/env python
import struct

# Ouverture de l'image
f = open("image.gif", mode='rb')
image = f.read()
f.close()

# Lecture des entêtes du fichier GIF
format, version, largeur, hauteur = struct.unpack('3s3sHH', image[:10])
if format == b'GIF':
	print("Image GIF de version %s, de largeur %dpx et de hauteur %dpx" % (version, largeur, hauteur))
else:
	print("Il ne s'agit pas d'une image GIF")

Aucun commentaire

Fil RSS des commentaires de cet article

Écrire un commentaire

Contenu de votre message :

Votre nom ou pseudo :

Votre site Internet (facultatif) :

Votre adresse e-mail (facultatif) :

Quelle est la première lettre du mot envdx ? : 

CopyLeft - 2013-17 - Toutes gauches réservées - Licence CC-BY

Valide xHtml 1.0 STRICT | Fièrement propulsé par PluXml | 0.016s | 144085 vues