Reto: crea más filtros
Clase 3 de 5 • Laboratorio de JavaScript: Crea tu App de Filtros y Detección de Rostros
Resumen
¿Cómo crear un filtro de Pokémon usando JavaScript, HTML y CSS?
En el mundo del desarrollo web, el aprendizaje continuo y la práctica son esenciales para dominar tecnologías como JavaScript, HTML y CSS. Este proyecto te brinda la oportunidad de aplicar tus habilidades a través de la creación de un filtro de Pokémon aleatorio. Con entusiasmo, observaremos cómo se implementó este filtro y qué aspectos clave se deben tener en cuenta.
¿Cuál es el enfoque del proyecto y cómo se integra el filtro?
Se trata de un filtro basado en rostros que utiliza el FaceDetector
API para detectar rostros y aplicar imágenes de Pokémon aleatorias sobre ellos. A continuación, se describen los pasos fundamentales para lograr este efecto:
-
Implementación del método de dibujo (
draw
): Este es el núcleo del filtro. Se llama cada vez que se detecta un rostro y se utiliza elcontext
delcanvas
para dibujar sobre él. -
Dibujo de imágenes usando el
canvas
:const drawImageOnFace = (faceFeature) => { const { left, top, width, height } = faceFeature; const offset = 80; // Ajuste mágico context.drawImage(image, left, top, width + offset, height + offset); };
-
Selección aleatoria de imágenes para cada rostro, asegurando una experiencia visual dinámica con cada ejecución.
¿Cómo se asegura la aleatoriedad de las imágenes?
Una parte crucial de este proyecto fue asegurar que las imágenes de Pokémon se seleccionaran aleatoriamente y se asignaran de manera consistente a los rostros detectados. Esto se logró a través de:
- Método
getImageForFace
:- Registra qué imagen se asignó a cada rostro, manteniendo la consistencia aún cuando hay múltiples detecciones.
- Generación de números pseudo-aleatorios:
const getRandomImage = () => { const randomIndex = Math.floor(Math.random() * totalPokemons); return pokemonImages[randomIndex]; };
¿Qué impacto tiene la personalización de imágenes y la relación con el tamaño del rostro?
-
Offset mágica en dimensiones: Este ajuste de 80 píxeles fue determinado a ojo para asegurar que la imagen del Pokémon cubra adecuadamente el rostro.
-
Adaptación a diferentes tamaños de rostro: Los rostros se escalan automáticamente con el
width
yheight
detectados por elFaceDetector
, haciendo que el filtro sea versátil para diferentes formas y tamaños de cara.
¿Qué sigue en el aprendizaje de filtros web?
Incorporar filtros que utilicen video, en lugar de solo imágenes, puede añadir una capa adicional de interacción y entretenimiento en tus proyectos. Además, explorar otras API's HTML5 y técnicas de detección de rostros podría llevar tus habilidades al siguiente nivel.
Este viaje en el mundo del desarrollo web es continuo y lleno de descubrimientos. Mantente curioso y sigue creando. ¡La próxima lección promete ser aún más emocionante!