Tengo elemento canvas y quiero reducirlo, pero sin cambiar su lógica js. El espacio de dibujo en js siempre debe ser de 600x300px, incluso si se muestra en HTML como 300x150px. Sé que puedo cambiar el tamaño de la imagen con resolución estática, pero ¿puedo hacer lo mismo con el lienzo?Elemento de lienzo de escala con resolución estática
Respuesta
Cambiar el tamaño usando CSS escalas que
Así que, básicamente, se establece el tamaño de los objetos de dibujo, etc, a través de los width
y height
propiedades al igual que
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d");
canvas.width = 600;
canvas.height = 300;
y luego el cambio su tamaño mostrado usando css
#canvas{
width: 300px;
height: 150px;
}
Loktar tiene una forma, usar CSS, pero eso puede hacer que algunas cosas se vean divertidas. Por ejemplo, las rutas escaladas usando CSS y escaladas utilizando la propia transformación del lienzo pueden verse muy diferentes (con los CSS que se ven mal y los lisos que se ven sin problemas). Sin embargo, esto depende del navegador y podría estar perfectamente bien. En Chrome al menos, el texto escalado de esta manera se ve muy mal.
lugar que recomiendo mirar lo que he escrito aquí sobre el concepto de "modelo" Coordenadas: Working with canvas in different screen sizes
escribir todo como si el espacio de dibujo es 600x300, pero tenga un lienzo que es 300x150.
Antes de dibujar cualquier cosa, utilice ctx.scale(0.5, 0.5);
y todo se verá genial!
Después de todo, es bastante posible escribir una aplicación de lienzo y hacer que se adapte a todo tipo de pantallas, incluso si solo se dirige a un tamaño de pantalla.
- 1. Lienzo de escala en Android Bitmap
- 2. Degradado rectangular con elemento de lienzo HTML5
- 3. midiendo texto en lienzo a escala
- 4. ¿Dibuja un mapa de bits a escala en el lienzo?
- 5. Escala de ancho de lienzo HTML5 conservando relación de aspecto w/h
- 6. Cómo deshabilitar seleccionar elemento de lienzo html5
- 7. html5 - elemento de lienzo - Varias capas
- 8. CSS Escala un elemento con un ancho del 100%
- 9. Escala/amplía un elemento DOM y el espacio que ocupa usando la escala de transformación CSS3()
- 10. Descargar un elemento de lienzo Html5 como una imagen con la extensión de archivo con Javascript
- 11. Comprensión de HTML 5 escala de lienzo y orden de traducción
- 12. Escala con CGAffineTransform y establece el ancla
- 13. Generar datos de imagen del elemento de lienzo HTML
- 14. Cambio de tamaño de lienzo HTML5 al elemento principal
- 15. Borrado de lienzo con Canvas.drawColor()
- 16. Cómo cambiar el tamaño del elemento de lienzo html?
- 17. Similitudes entre el lienzo HTML5 y el lienzo de Android
- 18. HTML5 Canvas Escala de imagen Edición
- 19. Guardar el elemento de lienzo html5 en el archivo (local)
- 20. escala de imagen de Java
- 21. cursor: puntero en el elemento de lienzo html5 hover
- 22. Lienzo de Tkinter mover elemento al nivel superior
- 23. Zoom con lienzo
- 24. Lienzo dentro de lienzo de html5
- 25. Espesor de trazo invariable de Trayectoria independientemente de la escala
- 26. HTML5 Tamaño de la lona y resolución
- 27. Cómo trazar hist con escala de registro
- 28. escala de grises con la animación CSS
- 29. resolución de ecuaciones simultáneas con R
- 30. Resolución de la interfaz genérica con Autofac
Ah bien olvidé todo sobre 'scale': P – Loktar
Gracias, pero la solución @Loktar se adapta bien en mi caso :). – ciembor