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 :

Ouvrir le contenu d'une image et la recréer.


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut Ouvrir le contenu d'une image et la recréer.
    Bonsoir.
    Je travaille sur le cryptage RSA et je cherche à crypter une image puis à la décrypter et la "recréer" (sachant que la personne qui voudra recréer l'image n'aura que le fameux code pour la reconstruire)

    J'ai donc essayé d'ouvrir une image (1 pixel) :

    >>> image=open("image.bmp", "rb")
    >>> print(image.read())
    b'BM\x8e\x00\x00\x00\x00\x00\x00\x00\x8a\x00\x00\x00|\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\x01\x00 \x00\x03\x00\x00\x00\x04\x00\x00\x00\x13\x0b\x00\x00\x13\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x00\x00\x00\x00BGRs\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\xd8\xef'

    Le problème, c'est que je ne sais pas trop comment interpréter tout ça, mais surtout : Ayant ce code, puis-je recréer l'image initiale ?

    Je pense que c'est le même principe qu'une fonction qui ferait un copier/coller de l'image vers un autre dossier par exemple, mais j'ai quand meme des doutes et suis incapable de faire ça en Python avec mes connaissances...!


    d'avance pour votre aide !

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    En fait, le fichier n'est "image" qu'a partir du moment ou un programme pourra afficher l'image correspondante.
    i.e. après lecture du fichier qui contient la suite d'octets.
    Les extensions du nom de fichier (.BMP, .GIF,...) servent a choisir le programme ou a lui permettre de "décoder" la suite d'octets pour construire les différents pixels.
    Après la question est de savoir si vous voulez encrypter le fichier et qu'il soit "image" ou autre, vous allez creer un nouveau fichier a partir de la suite d'octets qu'il contient ou si vous voulez chiffrer le contenu pour y cacher d'autres informations (steganography).
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Merci !
    En fait, j'ai déjà un programme qui permet de crypter mon texte et le décrypter. (il donne le code par des blocs de 6 chiffres que je retraduis ensuite grace au cryptosysteme RSA).
    Mon but est de prendre une image, la transformer en un code, l'envoyer au destinataire, et que le destinataire puisse décoder le code puis recrée l'image.
    Du coup, si je crypte les données qui sont dans le message au dessus, je peux les décrypter facilement, mais le probleme que j'ai, c'est que je ne suis pas capable de reconstruire l'image quand j'ai ces données... Est-ce suffisant ? Faut-il que j'utilise un code en binaire pour pouvoir recréer l'image..?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par TueurDeMouches Voir le message
    Du coup, si je crypte les données qui sont dans le message au dessus, je peux les décrypter facilement, mais le probleme que j'ai, c'est que je ne suis pas capable de reconstruire l'image quand j'ai ces données...
    • fichier.1A => stream de bytes => chiffrage => stream de bytes => fichier.2
    • fichier.2 => stream de bytes => déchiffrage => stream de bytes => fichier.1B


    Si fichier.1A != fichier.1B, moi j'appelle ça "bug".

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Je vais m'expliquer comme vous alors, j'espère être ainsi plus compréhensible :

    Image => stream de bytes => chiffrage => "message codé" => déchiffrage => stream de bytes => Image.
    Tout est ok sauf la derniere etape, c'est à dire passer du stream de bytes à l'image. Je ne sais pas comment recréer l'image à partir de ça, d'où ma question : Comment faire ?

    Je n'ai aucun problème de bug, je veux juste passer de mon image à un stream de bytes à partir duquel je voudrais reconstruire la même image.

    TDM

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Soit une "image" est le contenu d'un fichier soit je ne sais pas ce que c'est.
    Pour valider que votre algo. fonctionne, vous avez un utilitaire GNU qui s'appelle cmp.

    Désole,

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

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Mon algorithme ne fonctionne pas vu que je ne l'ai pas terminé...
    Je cherche juste une méthode pour recréer l'image à partir du code posté tout au début... (Ou si c'est impossible avec celui-ci, avec un code en héxadécimal ou en binaire correspondant à une image !)

    TDM

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> f = open('icon_sample.gif', 'rb')
    >>> data = f.read()
    >>> f.close()
    >>> # on a lu l'image dans "data"
    >>> f = open('new.gif', 'wb')
    >>> f.write(data)
    145
    >>> f.close()
    >>> exit()
    Après on compare:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\py_works\bidon>cmp -b icon_sample.gif new.gif
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2014
    Messages : 15
    Points : 0
    Points
    0
    Par défaut
    Ah merci !
    En fait, je n'avais pas le "f.close" donc c'est peut etre pour ça que ça ne marchait pas...

Discussions similaires

  1. Recuperer dans une fonction javascript le contenu d'une image captcha
    Par silverfab34 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 18/07/2008, 17h34
  2. Perte du "contenu" d'une image
    Par lgomez dans le forum OpenCV
    Réponses: 3
    Dernier message: 11/07/2008, 15h01
  3. Deviner le type de contenu d'une image
    Par progfou dans le forum Traitement d'images
    Réponses: 4
    Dernier message: 23/05/2008, 19h34
  4. Ouvrir le contenu d'une page web
    Par akito dans le forum Langage
    Réponses: 8
    Dernier message: 22/07/2007, 14h51
  5. Réponses: 3
    Dernier message: 19/06/2006, 10h26

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