2012-05-06 19 views
6

¿Es posible obtener una matriz de píxeles desde una imagen PNG o BMP en Javascript? Me gustaría obtener una matriz RGB a partir de una imagen para poder manipular la matriz de píxeles y luego dibujar la imagen modificada en un lienzo.Convierta una imagen a una matriz RGB en Javascript

ACTUALIZACIÓN: He encontrado un duplicado exacto aquí: how to get the RGB value of an image in a page using javascript?

Sin embargo, las respuestas no lo hacen entrar en muchos detalles sobre cómo resolver este problema en realidad.

+0

Si hace clic en el enlace de la respuesta a esa pregunta, lo llevará a una respuesta detallada de cómo invertir el color de cada píxel en una imagen. Debe ser trivial convertir ese código en almacenar una matriz de píxeles. – JaredMcAteer

+2

Consulte https://developer.mozilla.org/en/Canvas_tutorial –

+0

posible duplicado de [cómo obtener el valor RGB de una imagen en una página usando javascript?] (Http://stackoverflow.com/questions/2754865/how -to-get-the-rgb-value-of-an-image-in-a-page-using-javascript) –

Respuesta

8

Hay cientos de tutoriales en la red sobre el uso de HTML Canvas imageData, que obtiene los valores RGBA de un lienzo. Haga una búsqueda de canvas imageData y encontrará mucha información.

Todo lo que tiene que hacer es:

ctx.drawImage(img, 0, 0); 
var imgData = ctx.getImageData(x, y, width, height).data; 

imgData es ahora una matriz en donde cada 4 lugares son cada píxel. Entonces, [0][1][2][3] son [r][g][b][a] del primer píxel.

+1

¿Cuál debería ser el tipo de parámetro de "img"? ¿Debería ser un objeto de imagen, o debería ser la URL de la imagen como una cadena? –

+0

@AndersonGreen una instancia de objeto Imagen, puede obtenerlo a través de DOM, crear uno nuevo mediante: 'var img = new Image(); img.src = "http: // ..." o img.src = "data: image/jpeg; base64, ...." ' – Mustafa

+0

No tengo , ya que estoy ejecutando un subconjunto de XHTML, pero tengo ¿Cómo puedo hacer eso? – loretoparisi

Cuestiones relacionadas