Czy można wysłać zapytanie do obiektu HTML Canvas, aby uzyskać kolor w określonej lokalizacji?
javascript
html
canvas
Liam
źródło
źródło
Czy wypróbowałeś metodę getImageData?
źródło
idx = (y * width + x) * 4
odpowiedzi Georga. Nie zapomnij jednak odświeżyć tego buforowanego obiektu za każdym razem, gdy zmieni się obraz.Color()
konstruktor? To wydaje się nigdzie nie istniećTak, oczywiście, pod warunkiem, że znasz jego kontekst. Jak uzyskać kontekst płótna?
PS: Jeśli planujesz mutować dane i rysować je z powrotem na kanwie, możesz użyć
subarray
Możesz poeksperymentować z tym na http://qry.me/xyscope/ , kod do tego jest w źródle, po prostu skopiuj / wklej go w konsoli.
źródło
context.getImageData(x, y, 1, 1);
źródło
Tak, sprawdź getImageData (). Oto przykład złamania captcha za pomocą JavaScript przy użyciu płótna:
http://ejohn.org/blog/ocr-and-neural-nets-in-javascript/
źródło
Zwróć uwagę, że getImageData zwraca migawkę. Implikacje są następujące:
źródło
źródło
Możesz użyć
i << 2
.źródło
Poręczny, długi oneliner do odczytu pikseli ( tutaj narysuj piksel )
Pokaż fragment kodu
Pierwsza linia to początkowa część, w której możesz zmienić selektor płótna
s='.myCanvas'
. Ten poręczny oneliner jest dobry do testowania algorytmów lub do weryfikacji koncepcji, ale do kodu produkcyjnego lepiej jest użyć innego, bardziej przejrzystego i czytelnego kodu.źródło
Jeśli chcesz wyodrębnić określony kolor piksela, przekazując współrzędne piksela do funkcji, będzie to przydatne
x
,y
to współrzędna, którą chcesz odfiltrować kolor.Kolor jest tym obiektem, można uzyskać wartości RGB przez
color.r
,color.g
,color.b
.źródło