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

Python Discussion :

découpe une image [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut découpe une image
    Bonjour
    Je voudrais découper une image avec la souris.
    J'ai trouve ce programme qui fonctionne bien,
    mais je n'arrive pas à récupérer l'image découpée en un fichier JPG
    Merci
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    import numpy as np
    import matplotlib.pyplot as plt
    from PIL import Image
     
    import matplotlib.widgets as widgets
     
    def onselect(eclick, erelease):
     
        if eclick.ydata>erelease.ydata:
            eclick.ydata,erelease.ydata=erelease.ydata,eclick.ydata
        if eclick.xdata>erelease.xdata:
            eclick.xdata,erelease.xdata=erelease.xdata,eclick.xdata
        ax.set_ylim(erelease.ydata,eclick.ydata)
        ax.set_xlim(eclick.xdata,erelease.xdata)
        fig.canvas.draw()
     
        #imgpil = Image.fromarray(fig) # Transformation du tableau en image PIL
        #imgpil.save("resultat.jpg")
     
    fig = plt.figure()
    ax = fig.add_subplot(111)
    filename="lena.png"
    im = Image.open(filename)
    arr = np.asarray(im)
    plt_image=plt.imshow(arr)
    rs=widgets.RectangleSelector(
        ax, onselect, drawtype='box',
        rectprops = dict(facecolor='red', edgecolor = 'black', alpha=0.5, fill=True))
    plt.show()

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    plt.savefig('monfichier.png') peut-être ou plt.savefig('monfichier.jpg', format='jpg')

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 717
    Par défaut
    Salut,

    Votre programme ne découpe pas l'image, il se contente de masquer ce qu'on ne veut pas voir. Vous avez un Button qui sauvegarde ce qui est affiché dans un fichier (ou la possibilité de le coder avec Figure.savefig).

    C'est un peu plus que l'image toute seule mais pour faire mieux, il faut le coder et partir du code que vous avez posté n'est pas forcément le plus facile. Donc il faut en plus réfléchir à.... alors que vous avez des logiciels gratuits comme Paint qui font déjà çà très bien.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Et comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    def onselect(eclick, erelease):
        global im
        top, bottom = sorted(eclick.ydata, erelease.ydata)
        left, right = sorted(eclick.xdata, erelease.xdata)
        cropped = im.crop((left, top, right, bottom))
        cropped.save("lena_cropped.jpg")
    Pas testé, mais on ne devrait pas être loin.

  5. #5
    Membre averti
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Juillet 2015
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2015
    Messages : 19
    Par défaut Merci pour vos reponses
    Merci pour vos réponses .
    En attendant, j'ai réussi a afficher une image et sélectionner avec la souris
    un morceau de l'image, de l'afficher dans une autre" FRAME" et de l'enregistrer.
    Encore MERCI

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

Discussions similaires

  1. Mettre un fond sur une image découpée en subplot.
    Par kaguouille dans le forum Images
    Réponses: 1
    Dernier message: 07/03/2012, 21h12
  2. Intégration HTML emailing - Découpe d'une image
    Par Falard dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/08/2011, 12h37
  3. Découpe d'une image
    Par Guinome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/03/2009, 23h46
  4. Découpé une image et faire un effet sur le contour
    Par sliverman dans le forum Flash
    Réponses: 8
    Dernier message: 14/06/2007, 13h39
  5. Espace involontaire entre lignes d'une image découpée
    Par joviper dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 04/01/2007, 11h30

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