Dado un PNG en un contexto web con algunos píxeles transparentes y algunos píxeles no transparentes, ¿hay forma en Javascript de determinar si un usuario ha hecho clic en un píxel no transparente? Una solución solo de webkit sería perfectamente aceptable.Detección de aciertos en píxeles no transparentes
Respuesta
1) Crear HTML5 lienzo del mismo tamaño que su imagen
2) Obtener el contexto de la lona, drawImage (yourImage, 0, 0)
3) d = context.getImageData (0, 0, w de img, h de img)
4) d.data [(y * ancho + x) * 4 + 3] para el alfa
canvas = document.createElement("canvas"); //Create HTML5 canvas: supported in latest firefox/chrome/safari/konquerer. Support in IE9
canvas.width = img.width; //Set width of your rendertarget
canvas.height = img.height; // \ height \ \ \
ctx = canvas.getContext("2d"); //Get the 2d context [the thing you draw on]
ctx.drawImage(img, 0, 0); //Draw the picture on it.
id = ctx.getImageData(0,0, img.width, img.height); //Get the pixelData of image
//id.data[(y*width+x)*4+3] for the alpha value of pixel at x,y, 0->255
sé que estas cosas están fuera de moda en estos días, pero HTML image maps aún son válidos, y puede lograr agregar objetivos de golpe a formas casi arbitrarias dentro de una imagen. Si no desea volver a cargar otra página al hacer clic, probablemente podría cambiar el delimitador en la URL con esta técnica y elegir el cambio con un intervalo de Javascript.
El lienzo es el camino a seguir para este propósito. Pero también recuerde que las versiones anteriores de Internet Explorer no serán capaces de la función getImageData()
. Incluso si incluye excanvas.
He hecho un pequeño plugin jquery exactamente para este propósito, tal vez te ayude a resolver tu problema sin reinventar completamente la rueda. http://www.cw-internetdienste.de/pixelselection/
- 1. Detección de aciertos al dibujar líneas en iOS
- 2. ¿Usando PIL para hacer transparentes todos los píxeles blancos?
- 3. Detección de colisión perfecta de píxeles en Canvas HTML5
- 4. Encontrar los píxeles del borde de una imagen con un entorno transparente (para detección de colisión)
- 5. java con buffer de imagen: La detección de píxeles negros
- 6. Incremento Página de aciertos en Django
- 7. En OpenGL ES, ¿cómo cargo una textura que tiene píxeles transparentes?
- 8. iOS: ¿cree una versión más oscura de UIImage y deje los píxeles transparentes sin cambios?
- 9. Detección de bordes y transparencia
- 10. Problema de detección de colisiones basado en píxeles con OpenGLES 2.0 en Android
- 11. ¿Por qué mis imágenes transparentes utilizadas en una cinta Delphi 2009 no son transparentes en el tiempo de ejecución?
- 12. lienzo ImageData eliminar píxeles blancos
- 13. Gráficos de líneas transparentes Matplotlib
- 14. PNG transparentes alfa no se muestran correctamente en Mobile Safari
- 15. iPhone SDK: subvistas no transparentes en vista transparente
- 16. Comportamiento de texturas transparentes en WebGL
- 17. Conexión no wifi con detección de detección de teléfono
- 18. Algoritmo de detección de rostros para una cara de 15x15 píxeles?
- 19. XmlJavaTypeAdapter no su detección
- 20. No hay detección de jailbreak
- 21. Baja Tasa de aciertos de la caché de tabla MySQL
- 22. ¿Establecer píxeles blancos en transparente en ImageMagick utilizando un umbral?
- 23. Figuras semi transparentes en beamer (pdflatex)
- 24. Combina dos imágenes transparentes PNG
- 25. android/opengles texturas alpha no semitransparentes pero binarias transparentes
- 26. ¿Cómo implementar un panel transparente con elementos secundarios no transparentes?
- 27. UIImage con esquinas redondeadas transparentes
- 28. Detección de bordes unidimensionales
- 29. Problemas de IE6 con PNG transparentes
- 30. Píxeles de dibujo en WPF
OK. ¡Eso es bueno! +1 para ti en 34 minutos cuando obtengo más votos :-) – Josh