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 :

Nom : wallhaven-5341.jpg
Affichages : 1004
Taille : 955,2 Ko

Image à cacher :

Nom : wallhaven-77864.jpg
Affichages : 985
Taille : 214,6 Ko

Image quand je cherche l'image caché :

Nom : canvas.png
Affichages : 982
Taille : 609,4 Ko

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

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);
}
Voilà aussi un petit schéma pour résumé comment mon script fonctionne :

Nom : prout_img.png
Affichages : 1056
Taille : 68,9 Ko

Merci d'avance de votre aide.