Bonjour,
A force d'essayer de dériver PIL.Image et d'échouer, je tombe sur ceci:
http://aspn.activestate.com/ASPN/Mail/Message/image-sig/582313
Ils y disent:
The Image class is just a wrapper for the internal ImagingCore type;
it was never really designed for general subclassing...
Bon, OK... Ce bout de code ne fonctionne pas:
from PIL import Image
class MonImage(Image):
def open(self, une_racine, nom_fichier):
Image.open(nom_fichier)
self.calque=Image.open('modele_archi.PNG')
self.convert('RGB')
self.resize(self.calque.size)
self.paste(self.calque, (0,0), self.calque)
self.racine=une_racine
Avec ceci comme traceback
File "/home/mihamina/public_html/ArchiGallery/generate.py",
line 18, in <module>
class MonImage(Image):
TypeError: Error when calling the metaclass bases
module.__init__() takes at most 2 arguments (3 given)
Dans mon programme, je ne fais jamais de:
img = Image(...)
Mais toujours des:
img=Image.open('fichier.png')
D'ou la surcharge directe de open().
Comment je peux faire dans mon cas?
Il s'agit pour moi de faire des transformations sur les images ouvertes, dès leur ouverture (par open()), le tout uniquement avec des methodes de ma classe dérivée.
Bref, faire "objet" quoi...
Merci d'avance pour les pistes.
--
Huile Essentielle de Camphre
http://www.huile-camphre.fr
Infogerance
http://www.infogerance.us
(Serveurs, Postes de travail, Développement logiciel)