Estoy tratando de crear un pequeño juego 2D en Javascript/Canvas que consta de varios sprites animados. Me gustaría reducir el número de solicitudes HTTP, así que combiné cada fotograma de animación (32px por 32px) en una imagen por sprite (digamos, 192px por 128px). ¿Hay alguna forma de que pueda copiar y recortar estas imágenes del lado del cliente en varias imágenes más pequeñas? Sería muy sencillo de simplificar mi código de representación y ayudaría a reducir el tiempo de carga debido a la latencia de la red.Copiar y recortar imágenes en Javascript
Respuesta
Tenga una mirada en Pixastic, específicamente http://www.pixastic.com/lib/docs/actions/crop.
La API Canvas de HTML5 proporciona un método llamado drawImage que le permite recortar la imagen de entrada.
context.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)
Para más información, véase la especificación (que la imagen se toma directamente de la especificación):
http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#images
Eso es lo que estoy haciendo ahora. Solo estoy tratando de averiguar si hay una forma de recortar la imagen antes de dibujarla para simplificar mi código de representación. –
Si su única preocupación es simplemente el código, puede encapsular los datos de la imagen en un objeto reutilizable como este: https://gist.github.com/702799 – mike
Todavía estoy trabajando en ello, pero para darle una idea de donde estoy, aquí está la fuente: http://bitbucket.org/bluejeansummer/rpgsite/src/tip/media/js/rpg.js –
Si no desea utilizar tela o tercera parte biblioteca, podría agregar la imagen a un div (con "desbordamiento: oculto") del tamaño de la versión recortada y otorgarle a la imagen márgenes izquierdo y superior negativos.
Cada uno transportará toda la imagen, pero solo mostrará una parte de ella, lo que puede, o no, afectar el rendimiento. Creo que puede que tengas que dar al elemento div una posición: relativa también para hacer feliz a IE.
alternativa usted puede asignar la imagen como fondo de la div, y especificar el backgroundPosition. Me parece recordar que esto no funcionó por algo que hice una vez, no estoy seguro de por qué. (Creo que tenía que ver con la opacidad)
No estoy seguro de que esto sea relevante, dado que la pregunta se formuló en el contexto de la creación de un juego de JavaScript/lienzo. –
, creo que pensé que el lienzo se mencionaba porque pensó que era necesario solo para esto. Pero sí, es fácil con el lienzo copiar partes de una imagen, me pregunto por qué se necesita la biblioteca pixástica. – rob
sólo tiene que cargar la imagen en una etiqueta img con pantalla atributo de estilo configurado como oculto. A continuación, recorte la imagen en un lienzo sin pantalla, luego, escriba el lienzo sin pantalla en el lienzo principal según sea necesario.
- 1. Photoshop: Copiar y pegar una imagen sin recortar la transparencia
- 2. Usar javascript para recortar la imagen
- 3. ¿La mejor manera de recortar y cargar imágenes con Express?
- 4. Ordenar y recortar imágenes dinámicas similares a google + álbum ver
- 5. Copiar/Pegar en JavaScript?
- 6. ¿Cómo puedo recortar la coma inicial y final en javascript?
- 7. Wysiwyg con copiar/pegar imágenes
- 8. Recortar videos en iOS
- 9. ¿Copiar matriz asociativa en javascript?
- 10. Javascript edición de imágenes plug-in
- 11. JavaScript & copiar estilo
- 12. Aplicación Django para recortar imágenes usando una herramienta de recorte
- 13. Javascript recortar una cadena a la longitud
- 14. iPhone - ¿Cómo se hace un rectángulo redimensionable para recortar imágenes?
- 15. Cómo copiar CSS y JavaScript externos en XSLT
- 16. ¿Cómo superponer imágenes en javascript?
- 17. Crear/modificar imágenes en JavaScript
- 18. Comparar dos imágenes en JavaScript
- 19. Necesito recortar todos los elementos en el formulario usando javascript
- 20. recortar en javascript? ¿Qué está haciendo este código?
- 21. ¿Cuál es la mejor manera de recortar() en javascript
- 22. Recortar/recortar un archivo JPG con espacio vacío con Java
- 23. Recortar un UIImage en iPhone
- 24. Precarga de JavaScript Imágenes
- 25. Copie las imágenes javascript hechas al portapapeles
- 26. Cómo recortar la imagen analizada en android?
- 27. Recortar imagen en PHP
- 28. Recortar imagen en Android
- 29. Trabajador web y escalado de imágenes
- 30. Cómo recortar una imagen enorme
No había visto eso antes, lo investigaré. Gracias. –