Télécharger le zip
Euh, ca fonctionne pas !
Euh si ca fonctionne tres bien Bravo
Ben...moi j'ai pas encore essayé... mais bravo à l'avance ;)
Comment tu fais pour crypter du texte dedans ?
Très intéressant, ce code, aymenc.Pour les lignes :R := R and 248 or (C and 7); // masquage (évident!)G := G and 248 or (C and 56) shr 3;B := B and 252 or (C and 192) shr 6;ton commentaire quant au masquage ("évident") démontre une belle maîtrise des mathématiques.Félicitations !Ceux qui sont moins brillants que toi auront un bon sujet de réflexion pour les vacances ! ;)Bonne continuation.japee
Intéressant ma fois.je débute et suis pas tout à fait à l'aise dans la manipulation des bits... et je n'y connais rien sur les images bmp.(quel handicap!!!)col := MyImage.canvas.Pixels[x, y];On obteint la couleur d'origine du pixel, au format RGB.Le format est définit comme tel : PPRRGGBB, avec PP pour la valeur de la palette, le RR pour le rouge, le GG pour le vert, BB pour le bleuR := getRvalue(col); // extraction du rougeG := getGvalue(col); // extraction du vertB := getBvalue(col); // extraction du bleuon a les intensité des couleurs.R := R and 248 or (C and 7); // masquage (évident!)c'est la que ca devient rude.C and 7 : masque pour obtenir uniquement les valeurs contenu dans les 3derniers bits (GBB)R and 248 : masque pour obtenir uniquement les valeurs contenu dans les 5premiers bits (PPRRG)R := R and 248 or (C and 7); on regroupe les valeurs obtenu par les 2 masques dans la nouvelle valeur de RG := G and 248 or (C and 56) shr 3;y'a du décalage de bits dans l'air. rude!(C and 56) : masque pour obtenir uniquement les valeurs contenu dans les bits 6 à 4 (RRG)(C and 56) shr 3 : on décale ces bits pour les traiter comme si c'était les 3 premiers (GBB)G and 248 or (C and 56) shr 3 : on regroupe les masques en un nouveauetcun texte comprends les caractère dont le code hexa est compris enter $20 (=32) et $7E (=126)ce qui donne une valeur comprise entre :00100000 et 01111110ce qui indique que sur notre pixel, on ne va pas toucher au bit PPon va coder notre caractère sur les valeurs RRGGBB.pour la nouvelle valeur de R du code ci-dessus, on ne touchera pas à BB.....je pense pas être trop loin de la solution...mais j'aurais besoin de qq explications en plus.si l'un de vous veut bien me donner les derniers détails, pour que moi aussi je puisse etre illuminé par la beauté de ce code, et surtout sa subtilité :)merci beaucoup de m'avoir fait creuser le ciboulot :)
cacheR : infinitif et non caché.Pour ne pas faire cette faute il suffit de remplacer le verbe douteux par le verbe FAIRE.2 exemples puisés dans votre texte, le verbe "cacher" dans 2 contextes. J'y ai remplacé "caché" par "FAIRE" ou "FAIT" :1) Stéganographie ou comment FAIRE du Texte dans une Image.2) ...et récuperer le texte FAIT
Salut Millenod,Rappelons que dans le type BMP en format 24 bit/pixel, chaque pixel est représenté par3 octets: un pour le rouge, un pour le vert et un pour le bleu. Chaque octet comporte 8 bits permettant de coder une valeur entière de 0 à 255.Nous allons cacher un caractère (un octet) dans un pixel.Nous aurons donc un caractère caché dans chaque point de l'image. Nous devonsrépartir les 8 bits d'un octet parmi les 24 bits représentant le pixel. Arbitrairementnous choisissons d'utiliser:- les 3 bits de poids faible de l'octet du rouge- les 3 bits de poids faible de l'octet du vert- les 2 bits de poids faible de l'octet du bleuIl est essentiel d'utiliser comme container les bits de poids faible, car ils ont moins d'influence sur la couleur.
REPONSE à MILLENODTu confonds Bit et OctetAymenk bloque le "cryptage" si l'image n'est pas en 24 bits donc : Pour chaque point :R G Bxxxxxxxxxxxxxxxxxxxxxxxxxxx= 0 ou 1R, G et B variant de 0 à 255, Un caractère = 1 octet soit xxxxxxxx (x= 0 ou 1)Le cryptage consiste à altérer R et B de 7/255 soit 2,7%, et B de 4/255 soit 1,5%, et dans la place libérée, stocker les 8 bits de chaque caractère du texte à crypter.R G Bxxxxx123xxxxx456xxxxxx78x= 0 ou 1, issus de l'image1,2,3,4,5,6,7 = 0 ou 1, issus du caractère.123, comme 456 varie de 0 à 7, tandis que 78 varie de 0 à 4C'est à peu près ça (ou 8/256 et 5/256 ???)Le programme de cryptage est pas mal, simple, modifiable...Mais il eut été mieux que le dpr soit mieux conçu, par exemple en affichant les deux images, sans et avec texte
@assemplemerci pour les corrections d'orthographe. Même si je connais les règles, j’ai tendance à me laisser aller sur les forums, sans pour autant donner dans un style sms.@aymenkMerci, j’avais pas tout à fait vu le tout comme ça. Bien que maintenant, grâce à ton explication, c’était « presque » limpide.Je ne savais pas la subtilité sur la relation entre bits de poids faibles et couleur.assemple a d’ailleurs très bien illustré ton explication.Je vous remercie donc pour votre aide et m’avoir permis de mieux comprendre les subtilités de ce code, et de voir le soutien qu’offrent les membres du site.
Extrèmement interessant ce cours sur les images. Merci.
hum :) très intéressent :PPar contre, une petite amélioration pourrait être faite :)Une adaptation a la taille du texte et de l'image :)Au plus le texte est court au moins il consomme d'octet... hors pourquoi prendre 8bits par pixel sur une image de 1024x768, si le texte fait que 5000 caractères ? :) dans ce cas 1bit suffit plus que largement (puisqu'il permet de codé 96ko dans le fichier).Et pourquoi pas y planquer complètement un fichier et non que un texte ? :)
Je me suis permis de convertir ton code en C# :http://www.csharpfr.com/codes/CACHER-TEXTE-DANS-IMAGE_37542.aspx
Se souvenir du profil
Mot de passe oublié ? / Activation de compteCréer un compte