Tengo un PNG codificado en base64. Necesito obtener el color de un pixel usando javascript. Supongo que tendré que convertirlo a un PNG normal. ¿Alguien puede señalarme en la dirección correcta?Obtener el color de píxeles de Base64 PNG utilizando javascript?
Respuesta
Crea un objeto Image
con la imagen base64 como fuente. Luego puede dibujar la imagen en un lienzo y usar la función getImageData
para obtener los datos de los píxeles.
Aquí es la idea básica (no he probado esto):
var image = new Image();
image.onload = function() {
var canvas = document.createElement('canvas');
canvas.width = image.width;
canvas.height = image.height;
var context = canvas.getContext('2d');
context.drawImage(image, 0, 0);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
// Now you can access pixel data from imageData.data.
// It's a one-dimensional array of RGBA values.
// Here's an example of how to get a pixel's color at (x,y)
var index = (y*imageData.width + x) * 4;
var red = imageData.data[index];
var green = imageData.data[index + 1];
var blue = imageData.data[index + 2];
var alpha = imageData.data[index + 3];
};
image.src = base64EncodedImage;
¡Muchas gracias! Luego tomé eso y convertí a códigos hexadecimales. ¿Hay alguna forma de extraer datos hexadecimales de getImageData, o debo convertirlos? De cualquier manera, gracias! – switz
@Switz: No directamente. Solo tiene que convertir cada canal individualmente con 'toString (16)' o algo similar. –
Eso es lo que hice. ¡Gracias! – switz
- 1. ¿Manera simple de leer valores de color de píxeles desde una imagen PNG en el iPhone?
- 2. png base64 en python en Windows
- 3. Java BufferedImage to PNG format Base64 String
- 4. Cambiar el color de todos los píxeles con otro color
- 5. Imagen WPF, cambiando el color de los píxeles
- 6. obtener imagen de base64 cadena
- 7. Cómo guardar un png de variable javascript
- 8. ¿Qué significa esto? image/png; base64?
- 9. Intentando extraer valores de píxeles de una imagen PNG determinada
- 10. Javascript: objeto Blob a base64
- 11. Obtener píxeles y colores de NSImage
- 12. Codificación de un PNG con JavaScript
- 13. Obtener el color promedio de la imagen mediante Javascript
- 14. ¿Añadir valores de píxeles de JavaScript?
- 15. Cómo obtener el valor de visualización de Seleccionar utilizando javascript
- 16. Asignación de color de Opencv con acceso directo de píxeles
- 17. Algoritmo SHA1 base64 en javascript y C#
- 18. obtener píxeles del mapa de bits
- 19. Cómo encontrar el elemento principal utilizando javascript
- 20. Obtener el color actual
- 21. Cómo base64 codificar dentro de javascript
- 22. Lienzo de Android cambiar algunos píxeles de color
- 23. codificación Base64 excepción utilizando impulso tiro
- 24. Cómo convertir una cadena Base64 imagen PNG a PNG Formato en C#
- 25. convirtiendo el archivo de imagen a base64 String usando javascript
- 26. Cambiar la imagen png blanca a un color específico
- 27. Degradado de color Javascript
- 28. Guardar imagen de lienzo PNG en almacenamiento HTML5 (JAVASCRIPT)?
- 29. Base PNG de datos al lienzo HTML5
- 30. Texto principal - Obtener coordenadas de píxeles de NSRange
Sí, usted tendrá que tanto base64-decodificación, y luego descodificar la secuencia PNG en Javascript. Este es un problema difícil (aunque no imposible). Es posible que en realidad esté limitado a este requisito, pero si le da un poco más de contexto, es posible que obtenga respuestas con un alcance más amplio que brinden otras soluciones en la situación. P.ej. ¿De dónde vienen los datos PNG? ¿A dónde va? ¿Necesitas un único píxel fijo de cada imagen? ¿Tienes algún soporte de servidor? Etc. –
Para hacerlo un poco más detallado: estoy intentando escribir una extensión de Safari. Imitará las capacidades de Colorzilla para Firefox. La única forma en que he visto que esto es posible es si toma una "captura de pantalla". La salida está en Base64 PNG. Eventualmente necesitaría rastrear el mouse, luego sincronizarlo con la imagen para sacar los datos del píxel cliqueado de la imagen. – switz
@BenZotto ¿Por qué sería difícil? – Melab