¿Es posible consultar un objeto HTML Canvas para obtener el color en una ubicación específica?
javascript
html
canvas
Liam
fuente
fuente
¿Has probado el método getImageData?
fuente
idx = (y * width + x) * 4
la respuesta de Georg. Sin embargo, no olvide actualizar ese objeto en caché cada vez que cambie la imagen.Color()
constructor? Eso no parece existir en ningún ladoSí, claro, siempre que tenga su contexto. ¿Cómo obtener el contexto del lienzo?
PD: si planea mutar los datos y dibujarlos en el lienzo, puede usar
subarray
Puede experimentar con esto en http://qry.me/xyscope/ , el código para esto está en la fuente, simplemente cópielo / péguelo en la consola.
fuente
context.getImageData(x, y, 1, 1);
fuente
Sí, echa un vistazo a getImageData (). Aquí hay un ejemplo de cómo romper captcha con JavaScript usando canvas:
http://ejohn.org/blog/ocr-and-neural-nets-in-javascript/
fuente
Tenga en cuenta que getImageData devuelve una instantánea. Las implicaciones son:
fuente
fuente
Puede utilizar
i << 2
.fuente
Práctico delineador de píxeles de lectura largo (dibuje el píxel aquí )
Mostrar fragmento de código
La primera línea es la parte inicial donde puede cambiar el selector de lienzo
s='.myCanvas'
. Este práctico delineador es bueno para probar algoritmos o hacer pruebas de concepto, pero para el código de producción es mejor usar otro código más claro y legible.fuente
Si desea extraer un color particular de píxel pasando las coordenadas del píxel a la función, esto será útil
x
,y
es la coordenada cuyo color desea filtrar.El color es el objeto, se obtiene el valor RGB de
color.r
,color.g
,color.b
.fuente