0Pricing
HTML Academy · Lección

Texto e imágenes en canvas

Represente cadenas de texto y dibuje imágenes en el canvas

Texto e imágenes en canvas es una lección gratuita de HTML Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de HTML Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de HTML Academy incluye 4 lecciones en total.

Dibujar texto

Establezca la fuente: ctx.font = "bold 24px sans-serif". Dibuje con: ctx.fillText("Hello", x, y) o ctx.strokeText("Hello", x, y). La coordenada y es la línea base del texto; añada la altura de los ascendentes por encima de ella para colocar correctamente el texto dentro de un cuadro delimitador.

Alineación del texto

ctx.textAlign controla la alineación horizontal: "left" (predeterminada), "center", "right". ctx.textBaseline controla la alineación vertical con respecto a y: "top", "middle", "alphabetic" (predeterminada), "bottom". Para centrar el texto, establezca ambos valores en "center" y "middle".

measureText para la maquetación

ctx.measureText("text") devuelve un objeto TextMetrics con el ancho y las métricas de la fuente. Úselo para calcular dinámicamente las posiciones del texto: centrarlo en un cuadro, ajustar el texto a un ancho máximo o alinear etiquetas a la derecha junto a puntos de datos.

Ajuste de línea del texto

Canvas no incluye ajuste de línea de texto. Impleméntelo midiendo el ancho de las palabras y acumulándolas hasta superar maxWidth; después, comience una nueva línea con intervalos de lineHeight. Esta es una función de utilidad habitual en las bibliotecas de renderizado de canvas.

Dibujar imágenes

ctx.drawImage(image, dx, dy) dibuja un HTMLImageElement, HTMLCanvasElement o HTMLVideoElement en (dx, dy). Cargue primero la imagen y dibújela en su controlador onload para asegurarse de que los píxeles estén disponibles antes de dibujar.

const img = new Image();
img.onload = () => ctx.drawImage(img, 0, 0);
img.src = "photo.jpg";

Escalar imágenes

ctx.drawImage(image, dx, dy, dw, dh) escala la imagen para ajustarla a dw x dh. La conservación de la relación de aspecto no es automática; calcule las dimensiones manualmente. Para conservarla: dw = img.width * scale; dh = img.height * scale.

Recortar imágenes

La versión de nueve argumentos de drawImage es: ctx.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh). El rectángulo de origen (sx, sy, sw, sh) recorta una parte de la imagen; el rectángulo de destino (dx, dy, dw, dh) coloca y escala ese recorte en el canvas.

Suavizado de imágenes

ctx.imageSmoothingEnabled = false desactiva la interpolación bilineal al escalar imágenes. Úselo para pixel art cuando se desee un escalado nítido y sin suavizado. Déjelo activado (valor predeterminado) para imágenes fotográficas, en las que el escalado suave ofrece mejores resultados.

Canvas como fuente de imagen

Pase un canvas como fuente a drawImage para renderizar un canvas sobre otro. Esto permite el renderizado fuera de pantalla: dibuje composiciones complejas en un canvas oculto y, después, dibuje ese canvas sobre el visible en una sola operación por fotograma.

globalAlpha y composición

ctx.globalAlpha (de 0 a 1) aplica una transparencia uniforme a todos los dibujos posteriores. ctx.globalCompositeOperation controla cómo se combinan los dibujos nuevos con los píxeles existentes: "source-over" (predeterminado), "multiply", "screen", "destination-out" (borrar), entre otros.

toDataURL para exportar

canvas.toDataURL("image/png") exporta el canvas como una URL de datos PNG codificada en base64. Úselo para una descarga iniciada por el usuario: cree un ancla, establezca href en la URL de datos y el atributo download en un nombre de archivo y, después, haga clic en ella mediante programación.

Comprobación de conocimientos

¿Qué efecto tiene ctx.textBaseline = "middle" al dibujar texto?

Resumen

El renderizado de texto en canvas utiliza ctx.font, fillText/strokeText, textAlign y textBaseline para el posicionamiento, y measureText para los cálculos de maquetación. El dibujo de imágenes mediante drawImage admite escalado y recorte; globalAlpha y globalCompositeOperation controlan la composición. toDataURL exporta el canvas para descargarlo o utilizarlo posteriormente.

Preguntas frecuentes

¿La lección «Texto e imágenes en canvas» es gratis?

Sí — el texto completo de «Texto e imágenes en canvas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de HTML Academy, actualiza a CoddyKit PRO. El curso de HTML Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Texto e imágenes en canvas»?

Represente cadenas de texto y dibuje imágenes en el canvas Practicas HTML Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar HTML Academy?

No se requiere experiencia previa. HTML Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Texto e imágenes en canvas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de HTML Academy?

Sí. Cada lección de HTML Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Configurar canvas y el contexto 2D
  2. Dibujar rectángulos y trazados
  3. Texto e imágenes en canvas
  4. Animación con requestAnimationFrame
← Volver a HTML Academy