Ist es möglich, ein HTML-Canvas-Objekt abzufragen, um die Farbe an einem bestimmten Ort zu erhalten?
javascript
html
canvas
Liam
quelle
quelle
Haben Sie die Methode getImageData ausprobiert?
quelle
idx = (y * width + x) * 4
der Antwort von Georg zu berechnen . Vergessen Sie jedoch nicht, das zwischengespeicherte Objekt jedes Mal zu aktualisieren, wenn sich das Bild ändert.Color()
Konstruktor? Das scheint nirgendwo zu existierenJa sicher, vorausgesetzt, Sie haben den Kontext. Wie bekomme ich Canvas-Kontext?
PS: Wenn Sie vorhaben, die Daten zu mutieren und auf die Leinwand zurück zu zeichnen, können Sie sie verwenden
subarray
Sie können damit auf http://qry.me/xyscope/ experimentieren. Der Code dafür befindet sich in der Quelle. Kopieren Sie ihn einfach in die Konsole.
quelle
context.getImageData(x, y, 1, 1);
quelle
Ja, schauen Sie sich getImageData () an. Hier ist ein Beispiel für das Brechen von Captcha mit JavaScript mithilfe von Canvas:
http://ejohn.org/blog/ocr-and-neural-nets-in-javascript/
quelle
Beachten Sie, dass getImageData einen Snapshot zurückgibt. Implikationen sind:
quelle
quelle
Sie können verwenden
i << 2
.quelle
Praktischer langer Oneliner mit langen Lesepixeln (Pixel hier zeichnen )
Code-Snippet anzeigen
Die erste Zeile ist der erste Teil, in dem Sie die Canvas-Auswahl ändern können
s='.myCanvas'
. Dieser praktische Oneliner eignet sich gut für Testalgorithmen oder Proof-of-Concept, aber für Produktionscode ist es besser, anderen klareren und lesbareren Code zu verwenden.quelle
Wenn Sie eine bestimmte Pixelfarbe extrahieren möchten, indem Sie die Pixelkoordinaten in die Funktion übergeben, ist dies hilfreich
x
,y
Ist die Koordinate Sie herausfiltern Farbe wünschen.Die Farbe ist das Objekt, werden Sie den RGB - Wert von erhalten
color.r
,color.g
,color.b
.quelle