J'aimerai faire l'inverse de mon programme,je bloque passer de image a matrice
Résolu
telte
-
jee pee Messages postés 41521 Date d'inscription Statut Modérateur Dernière intervention -
jee pee Messages postés 41521 Date d'inscription Statut Modérateur Dernière intervention -
j'aimerai passer de l'image que j'ai cree a la matrice mais je bloque si vous avez une idee sa serez cool merci :)
from PIL import Image class Encryption: def __init__(self): self.string = "" def __call__(self): self.string = input("Enter your message (< 400 char) :\n") output = self.encrypt() return output def encrypt(self): global matrix if len(self.string) > 400: print("The message is too long. This must be under 400 characters long.") return None elif len(self.string) < 400: for i in range(400-len(self.string)): self.string += " " matrix = [ [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], [], ] index_str = 0 for row in range(20): for col in range(20): matrix[row].append(ord(self.string[index_str])) index_str += 1 coef = 100 image = Image.new("RGB",(len(matrix[0])*coef,len(matrix)*coef)) for ligne,col in [(x,y) for x in range(len(matrix)) for y in range(len(matrix[0]))]: couleur = matrix[ligne][col] couleurs = (couleur//(256*256),(couleur-(couleur//(256*256))*256*256)//256,couleur%256) for x,y in [(x,y) for x in range(coef) for y in range(coef)]: image.putpixel((col*coef+x, ligne*coef+y), couleurs) image.show () image.save('image.png') return matrix class Decryption: def __init__(self): self.matrix = [] def __call__(self, matrix): self.matrix = matrix message = self.decrypt() return message def decrypt(self): message = "" for row in range(len(self.matrix)): for col in range(len(self.matrix[row])): message += chr(self.matrix[row][col]) return message encrypt_tool = Encryption() decrypt_tool = Decryption() output = encrypt_tool() for i in output: print(i) transmitted_message = decrypt_tool(output) print("Le message était : ",transmitted_message)>
A voir également:
- J'aimerai faire l'inverse de mon programme,je bloque passer de image a matrice
- Passer de qwerty a azerty - Guide
- Passer de windows 7 à windows 10 - Accueil - Mise à jour
- Code puk bloqué - Guide
- Trousseau mot de passe iphone - Guide
- Annuaire inversé - Guide
4 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, ne suffit-il pas d'inverser l'assignation en ligne 56?
bonjours, merci pour votre reponce j'ai essayer mais j'ai pas réussi après j'ai peut-être fait une erreur
es que vous pourriez me montrer comment vous arriez fait ?
s'il vous plaît
es que vous pourriez me montrer comment vous arriez fait ?
s'il vous plaît
je charge l'image dans un tableau grâce a la bibliothèque numpy? ou il faut faire autrement car je connais que cette façon pour l'instant
As-tu avancé ?
je viens d'essayer avec numpy, on se rend alors compte d'une particularité, on charge un tableau de 4 millions de triplés RGB ;-) cela est du au coefficient 100 dans la création de l'image, c'est pratique pour voir les couleur, mais le but étant de cacher un texte, il serait mieux de repasser à un coefficient 1 pour faire l'image à décrypter, on aurait alors un tableau de 400 triplés, plus facile à exploiter.
je viens d'essayer avec numpy, on se rend alors compte d'une particularité, on charge un tableau de 4 millions de triplés RGB ;-) cela est du au coefficient 100 dans la création de l'image, c'est pratique pour voir les couleur, mais le but étant de cacher un texte, il serait mieux de repasser à un coefficient 1 pour faire l'image à décrypter, on aurait alors un tableau de 400 triplés, plus facile à exploiter.
j'ai pas encore reussi mais numpy j'ai abandonné tres vite et j'etais deja passer en coef 1
<code python>class Decryption:</code> je suis a la pour l'instant
def __init__(self):
self.matrix = []
def __call__(self, matrix):
self.matrix = matrix
message = self.decrypt()
return message
def dencrypt(self):
global matrix
matrix = [
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
[],
]
index_str = 0
coef = 1
for row in range(len(self.matrix)):
for col in range(len(self.matrix[row])):
matrix[ligne][col] = getpixel((col*coef+x, ligne*coef+y), couleurs)
return matrix
def decrypt(self):
message = ""
for row in range(len(self.matrix)):
for col in range(len(self.matrix[row])):
message += chr(self.matrix[row][col])
return message
là tu n'as même pas commencé puisque la première étape devrait être ouvrir l'image.
voilà l'article que j'ai utilisé pour charger le tableau : https://www.pluralsight.com/guides/importing-image-data-into-numpy-arrays
voilà l'article que j'ai utilisé pour charger le tableau : https://www.pluralsight.com/guides/importing-image-data-into-numpy-arrays