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

Bibliothèques tierces Python Discussion :

Problème sur programme Python


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2021
    Messages : 2
    Par défaut Problème sur programme Python
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    from PIL import Image
     
     
     
    def questions_nom_imgs () :
        """
        asks for the name of the visible image and the secret image and sends them back
        """
        variable_1 = input("Quel est le nom de l'image visible?")
        variable_2 = input("Quel est le nom de l'image secrete?")
        return (variable_1, variable_2)
     
    def importer_images(nom_img_1 : str, nom_img_2 : str):
        """
        import the visible and secret image and store them in variables that are returned
        """
        img_visible = Image.open(nom_img_1+'.jpg')
        img_secrete = Image.open(nom_img_2+'.jpg')
        return (img_visible,img_secrete)
     
    def dimensions(image_1 ,image_2):
        """
        checks that the dimensions of the two images are the same, returns "True" if they are the same
        """
        (l1,h1) = image_1.size
        (l2, h2) = image_2.size
        if l1 == l2 and h1 == h2:
            return True
        else:
            return False
     
    def conversion_binaire_8_bits(image,x : int ,y : int):
        """
        takes the colour in decimal of one pixel of (x,y) coordinates of the image
        and converts colour to 8-bit binary
        """
        couleur_decimal = image.getpixel((x,y))
        couleur_binaire = []
        for i in range (8):
            reste = couleur_decimal % 2
            couleur_binaire.insert(0,reste)
            couleur_decimal = couleur_decimal //2
        return (couleur_binaire)
     
    def garder_4_bits(binaire):
        """
        keep the 4 bits first out of the 8 bits
        """
        quatre_bits = []
        for i in range (4) :
            quatre_bits.append(binaire[i])
        return (quatre_bits)
     
    def garder_4_bits_2(binaire):
        """
        keep the 4 bits first out of the 8 bits
        """
        quatre_bits = []
        for i in range (4,7) :
            quatre_bits.append(binaire[i])
        return (quatre_bits)
     
     
    def addition_et_conversion (quatre_bits_vis,quatre_bits_sec):
        """
        add the bits and convert them to decimal
        """
        couleur_binaire = quatre_bits_vis + quatre_bits_sec
        couleur_decimal = 0
        cpt_parcour = 7
        for i in range (8):
            if couleur_binaire[cpt_parcour] == 1:
                couleur_decimal = couleur_decimal + 2**i
            cpt_parcour = cpt_parcour - 1
        return couleur_decimal
     
    def steganographie():
        """
        hides one image in the other under the condition that it is the same size
        """
        (nom_img_visible, nom_img_secrete) = questions_nom_imgs()
        (img_sec, img_vis) = importer_images(nom_img_visible, nom_img_secrete)
        same_dim = dimensions(img_sec, img_vis)
     
        if same_dim :
            largeur, hauteur = (img_vis.size)
            nvlle_img = Image.new('L',(largeur,hauteur))    #création d'une nouvelle image de la taille de image visible
     
            for x in range(largeur) :
                for y in range(hauteur) :
                    huits_bits_vis = conversion_binaire_8_bits(img_vis,x,y)
                    quatre_bits_vis = garder_4_bits(huits_bits_vis)
                    huits_bits_sec = conversion_binaire_8_bits(img_sec,x,y)
                    quatre_bits_sec = garder_4_bits(huits_bits_sec)
                    couleur = addition_et_conversion(quatre_bits_vis, quatre_bits_sec)
                    nvlle_img.putpixel((x, y), couleur)
     
            return nvlle_img.save('steganographie.jpg')
        else:
            return("Les deux images n'ont pas la même dimension.")
     
    def decode():
        img_a_decoder = Image.open('steganographie.jpg')
        largeur, hauteur = (img_a_decoder.size)
        image_cachee = Image.new('L',(largeur,hauteur))
        for x in range(largeur):
            for y in range(hauteur):
                couleur_huits_bits = conversion_binaire_8_bits(img_a_decoder,x,y)
                couleur_quatres_bits = garder_4_bits_2(couleur_huits_bits)
                zero = [0,0,0,0]
                couleur_decimal = addition_et_conversion(couleur_quatres_bits, zero)
                image_cachee.putpixel((x, y), couleur_decimal)
        return image_cachee.save('image_cachée.jpg')




    Bonjour j'ai écrit ce programme mais j'ai un problème je n'arrive pas a trouver pourquoi la fonction decode ne marche pas si quelqu'un veut bien m'aider se serait gentil merci d'avance.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    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 741
    Par défaut
    Salut,

    Il faut préciser "ne marche pas"... et fournir un exemple qui permette de reprduire ce que vous constatez.

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2021
    Messages : 2
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Il faut préciser "ne marche pas"... et fournir un exemple qui permette de reprduire ce que vous constatez.

    - W
    Lorsque l'on lance la fonction decode il est censée renvoyer l'image cacher lors de la stegonagraphie or il renvoie pas l'image que j'attend.

Discussions similaires

  1. Aide question sur programmation python débutant
    Par LoloB12 dans le forum Général Python
    Réponses: 2
    Dernier message: 02/01/2015, 13h21
  2. [Débutant] problème sur programme
    Par hotdogFRANCE dans le forum C#
    Réponses: 2
    Dernier message: 24/11/2012, 17h44
  3. Réponses: 3
    Dernier message: 17/09/2009, 19h39
  4. Problème sur programme gestion
    Par vincipop dans le forum Langages de programmation
    Réponses: 0
    Dernier message: 19/07/2008, 14h08
  5. Réponses: 10
    Dernier message: 02/12/2007, 00h13

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