Bonjour,
Dans le cadre d'un projet de stéganographie, je dois utiliser le module PIL, cependant je ne trouve pas la version compatible avec python 3. Faut-il que je repasse à python 2 ? Ou y'a t-il une autre solution ?
Merci de votre aide.
Bonjour,
Dans le cadre d'un projet de stéganographie, je dois utiliser le module PIL, cependant je ne trouve pas la version compatible avec python 3. Faut-il que je repasse à python 2 ? Ou y'a t-il une autre solution ?
Merci de votre aide.
Salut,
Pour le peu que je m'en suis servi, il ne me semble pas qu'il y ait eu de mise à jour pour Python 3.x, du moins pas officiellement.
Par contre il y a un fork: Pillow, compatible Python 3.x
Arduino, Raspberry Pi, ESP32, Infineon/Cypress PSoC, FPGA...
Arduino : Le forum, Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- FPGA : programmation d'un transmetteur UART en SystemVerilog [Nouveau]
- Apprendre à développer sur FPGA avec Intel Quartus Prime
- FPGA : programmer un contrôleur pour écran VGA
[Nouveau] Vous voulez soutenir le Club Developpez.com ? Abonnez-vous !
Salut,
Merci, ça fonctionne pour le module. J'ai, cependant un problème avec le code... Dois-je créer un nouveau sujet, où rester sur celui-ci ?
Si c'est toujours ton pb de stéganographie avec Python3/Pillow, je suppose que tu peux continuer ici.
Arduino, Raspberry Pi, ESP32, Infineon/Cypress PSoC, FPGA...
Arduino : Le forum, Le manuel de laboratoire, les Quiz, les cahiers pratiques, les sources et outils
Des capteurs connectés pour la maison avec Arduino et Raspberry Pi [Nouveau] Et en Zigbee ?
- FPGA : programmation d'un transmetteur UART en SystemVerilog [Nouveau]
- Apprendre à développer sur FPGA avec Intel Quartus Prime
- FPGA : programmer un contrôleur pour écran VGA
[Nouveau] Vous voulez soutenir le Club Developpez.com ? Abonnez-vous !
Très bien !
Ce que je dois faire :Il s'agit de récupérer chaque bits de poids faible d'un pixel (un pixel étant constitué des composantes r, g et b) pour obtenir un binaire final afin d'avoir un mot de passe. L'image est au format BMP.
Voici mon code :
Ce qui me retourne une liste de caractères.. Mais ce n'est pas ce à quoi je m'attendais. Je pensais avoir une phrase parfaitement intelligible. De deux choses l'une : Soit il y a une coquille dans mon code, soit j'ai omis quelque chose ayant un rapport avec le format BMP.
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 from PIL import Image # Module Image Python 'Imaging Library' pour charger et effectuer des opérations sur une image. img = Image.open('stega.bmp') # On ouvre l'image. width, height = img.size # On récupère la taille de l'image en largeur et longueur. binary_string = "" # Stockera notre chaîne binaire récupérée. Pour l'instant vide. lsb_extracted = "" # Stockera notre lsb récupéré. Pour l'instant vide. text = "" # Stockera notre texte récupéré. Pour l'instant vide. # On parcourt les pixels de notre image de x en y. for x in range(width): for y in range(height): r, g, b = img.getpixel((x, y)) # Récupération des valeurs ASCII des composantes r, g et b. r = str(bin(r)[2:]).zfill(8) # Conversion de la composante r décimale en binaire. g = str(bin(g)[2:]).zfill(8) # Conversion de la composante g décimale en binaire. b = str(bin(b)[2:]).zfill(8) # Conversion de la composante b décimale en binaire. binary_string += r[-1] # Récupération du bit de poids le plus faible de la composante r binary_string += g[-1] # Même chose binary_string += b[-1] # Même chose lsb_extracted = str([chr(int(binary_string[i:i+8], 2)) for i in range(0, len(binary_string), 8)]) # Conversion binaire par groupe de 8 bits vers décimale. Puis conversion en caractère depuis leur nombre en ASCII, et l'ajoute au texte. text = lsb_extracted print(text)
Merci de votre aide.
Partager