Salut,
Voilà j'ai développé un script permettant de cacher une image dans une autre image mais eh il ne fonctionne pas extrêmement bien.
Image de base :
Image à cacher :
Image quand je cherche l'image caché :
Comme vous pouvez voir ce n'est pas excellent et encore j'ai pris des images ou mon script marche assez bien ^^, je sais pertinament que c'est une erreur stupide mais j'ai tellement passé de temps dessus que j'arrive pas à voir ou cela cloche c'est pour cela que je fais appel à votre aide.
Mon script pour cacher l'image
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 function lol () { for ( x = 0; x < PixelsImage.width; x += 1 ) { for ( y = 0; y < PixelsImage.height; y+= 1) { for ( z = 0; z < 4; z +=1 ){ let pos = ((x * PixelsImage.height) + y ) * 4 + z var pixel = PixelsImage.data[pos] var pixelCache = PixelsImage_image_a_cacher.data[pos] || 0 if (z==3) { //Quand on est au valeur de l'opacité on garde les 4 premières valeur var hPixel = (pixel & 0b11111000) // là on récupére le bit le pluys lourd du rouge / vert / bleu var lPixel = ((PixelsImage_image_a_cacher.data[pos-3] & 0b10000000) >>> 7) | ((PixelsImage_image_a_cacher.data[pos-2] & 0b10000000) >>> 6) | ((PixelsImage_image_a_cacher.data[pos-1] & 0b10000000) >>> 5) } else { var hPixel = (pixel & 0b11111000) var lPixel = ((pixelCache & 0b01110000) >>> 4 ) } var newPixel = hPixel | lPixel PixelsImage.data[pos] = newPixel } } } ctx.putImageData(PixelsImage,0,0); }
Mon script pour retrouver l'image
Voilà aussi un petit schéma pour résumé comment mon script fonctionne :
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 function go() { for ( x = 0; x < PixelsImage.width; x += 1 ) { for ( y = 0; y < PixelsImage.height; y+= 1) { for ( z = 0; z < 4; z +=1 ){ let pos = ((x * PixelsImage.height) + y ) * 4 + z var pixel = PixelsImage.data[pos] if (z==0){ // On récupére le bit le plus faible de l'opacité qui correspond au rouge var newPixel = ( (PixelsImage.data[pos+3] << 7) & 0b10000000 ) | (( pixel & 0b111) << 4 ) } else if (z==1){ // On récupére le dexuième bit plus faible de l'opacité qui correspond au vert var newPixel = ( (PixelsImage.data[pos+2] << 6) & 0b10000000 ) | (( pixel & 0b111) << 4 ) } else if (z==2){ // On récupére le troisiéme bit plus faible de l'opacité qui correspond au bleu var newPixel = ((PixelsImage.data[pos+1] << 5) & 0b10000000) | (( pixel & 0b111) << 4 ) } else { // et la je met l'opacité qui vaut 255 forcément var newPixel = 255 } PixelsImage.data[pos] = newPixel } } } ctx.putImageData(PixelsImage,0,0); }
Merci d'avance de votre aide.
Partager