Bonsoir a tous
voila encore un soucis que je n'arrive pas a régler
j'ai donc pris pour parti de me séparer de mes table et inputs alignés par le flux dans un div pour créer ma palette perso
cela avec une image au départ dessiné sur un canvas on verra par la suite comment dessiner dessus ce canvas j'apprends petit a petit
et donc par le mouse move X/Y je capte le pixel visiblement le principe fonctionne mais je n'ai pas la bonne couleur
voici le code
ps
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
42
43
44
45 <!DOCTYPE HTML > <html lang="fr"> <head> <!--meta charset="utf-8"--> <title>patrick WYSIWYG html </title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <script> function draw() { document.getElementById('palcouleur').addEventListener("mousemove", getpixelcolor, false); var ctx = document.getElementById('palcouleur').getContext('2d'); var img = new Image(); img.src = "H:\\Imagess\\abstrait\\13.jpg"; img.onload = function() { ctx.drawImage(img, 0, 0); } alert("initialisé"); } function getpixelcolor(e) { var Kanvas = document.getElementById('palcouleur') var rect = Kanvas.getBoundingClientRect(); X = e.pageX - rect.left; Y = e.pageY - rect.top; var ctx = Kanvas.getContext('2d'); var c = ctx.getImageData(X, Y, 1, 1).data; var hex = "#" + ("000000" + rgbToHex(c[0], c[1], c[2])).slice(-6); document.getElementById("results").innerText = hex document.getElementById("results").style.backgroundColor = hex } function rgbToHex(r, g, b) { if (r > 255 || g > 255 || b > 255) throw "Invalid color component"; return ((r << 16) | (g << 8) | b).toString(16); } </script> </head> <body> <canvas id="palcouleur" style="width:150px;height:150px;border:1px solid black;"></canvas> <BUTTON id="results" style="position:absolute;top:200px;left:2px;width:200px;height:40px;"></BUTTON> <script> draw(); </script> </body> </html>
edit:
je viens de dimensionner mon image avec les même dimensions du canvas et voila comment il me l'affiche
et surtout!! quand je me balade avec la souris sur la partie blanche il me donne la couleur qui devrait y être
pourquoi me le resize t il a la moitié en largeur ???????
![]()
Partager