IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

wxPython Discussion :

[v2.2.3]PIL to wx


Sujet :

wxPython

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut [v2.2.3]PIL to wx
    Bonjour,

    Je souhaite convertir une Image de PIL vers une bitmap de wx.

    Je manipule exclussivement des images 24bits (RGB pleine résolution donc.)

    Avec la version de pyhton 2.5 pas de pb.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    imPil = Image.open("C:/images/image1.bmp")
    imData = imPil.tostring("raw", "RGB")
    bmp = wx.BitmapFromBuffer(width, height, imData)
    staticBmp = wx.StaticBitmap(self,wx.ID_ANY,bmp)
     
    ca ok en 2.5
    Seulement je suis contraint à utiliser python 2.2 et wx.BitmapFromBuffer n'y est pas disponible.

    Je pensais donc utiliser wx.BitmapFromBits :
    "doc"=
    "BitmapFromBits(bits, width, height, depth=1)
    Creates a bitmap from an array of bits. You should only use this function for monochrome bitmaps (depth 1) in portable programs: in this case the bits parameter should contain an XBM image. For other bit depths, the behaviour is platform dependent."

    mais je ne vois pas comment obtenir "array of bits" depuis une Image PIL

    je pensais aussi passer par wx.Image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    imPil = Image.open("C:/images/image1.bmp")
    imData = imPil.tostring("raw", "RGB")
    imwx = wx.Image("")
    imwx.SetData(imData)
    bmp = wx.BitmapFromImage(im)
    staticBmp= wx.StaticBitmap(self,wx.ID_ANY,bmp)
     
    marche pas,  PyAssertionError lors du setData
    une solution ?

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Moi, j'utilise ces 2 fonctions pour convertir une image pil en une image wxpython (après convertir une image wxpython en bitmap wxpython, c'est facile)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def piltoimage(pil,alpha=True):
        """Convert PIL Image to wx.Image."""
        if alpha:
            image = apply( wx.EmptyImage, pil.size )
            image.SetData( pil.convert( "RGB").tostring() )
            image.SetAlphaData(pil.convert("RGBA").tostring()[3::4])
        else:
            image = wx.EmptyImage(pil.size[0], pil.size[1])
            new_image = pil.convert('RGB')
            data = new_image.tostring()
            image.SetData(data)
        return image
     
    def imagetopil(image):
        """Convert wx.Image to PIL Image."""
        pil = Image.new('RGB', (image.GetWidth(), image.GetHeight()))
        pil.fromstring(image.GetData())
        return pil

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut
    ok merci beaucoup, c'est en effet "image = wx.EmptyImage..." qu'il me manquait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PIL] Soustraction de 2 images
    Par Pretender47 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 30/01/2009, 15h15
  2. [PIL] créer une nouvelle image
    Par airod dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 06/01/2006, 21h09
  3. [PIL] Difference entre deux images
    Par t_om84 dans le forum Calcul scientifique
    Réponses: 4
    Dernier message: 26/12/2005, 12h45
  4. [Pil] utilisation de getpixel
    Par duplo dans le forum Tkinter
    Réponses: 7
    Dernier message: 20/12/2005, 19h01
  5. EDBEngineError : "... ne peut etre utilisee avec ce pil
    Par Dev_Michael dans le forum Bases de données
    Réponses: 1
    Dernier message: 16/03/2005, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo