captureDOM en snapDOM - Parte 1

Descubre captureDOM de snapDOM: crea una representación autónoma del DOM con recursos embebidos (imágenes, fuentes) y CSS inline, optimizable con opciones de rendimiento.

18 ago 2025 • 4 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

En este artículo revisamos la función captureDOM dentro del código de snapDOM y ofrecemos un resumen en español de su funcionamiento y de las partes más relevantes del proceso de captura de elementos del DOM.

captureDOM overview: captureDOM es la función central que se ejecuta cuando invocas la API snapdom.capture. Su responsabilidad principal es producir una representación auto contenida del elemento objetivo, lista para ser convertida a imagen o para almacenarse como recurso reproducible. El flujo incluye preparar un clon del elemento, incrustar recursos externos como imágenes y fuentes, y generar estilos CSS inline para garantizar que la captura sea fiel al original.

Uso y llamada: La API pública snapdom.capture llama internamente a captureDOM con el elemento objetivo y un objeto de opciones. Estas opciones controlan comportamiento como compresión de estilos, inclusión de fuentes y uso de proxies para recursos remotos.

Opciones: Entre las opciones más relevantes se encuentran compress que permite reducir la duplicidad y tamaño de reglas de estilo, embedFonts que decide si se incrustan fuentes personalizadas, fast que optimiza ciertos pasos para acelerar la captura, scale para ajustar la escala de la salida, y useProxy para reenrutar peticiones de recursos. Estas opciones permiten adaptar el proceso a necesidades de rendimiento, fidelidad visual o restricciones de red.

prepareClone: La función prepareClone crea y prepara un clon del elemento original para la captura. Copia estilos computados, genera clases temporales cuando es necesario y resuelve pseudo-elementos para que el clon mantenga la misma apariencia. Si embedFonts está activado, detecta y genera fuentes embebidas para evitar dependencias externas. El resultado es un nodo clon que incluye un CSS generado y una caché de estilos para acelerar operaciones posteriores.

inlineImages: La rutina inlineImages recorre las etiquetas img dentro del clon y trata de convertir sus orígenes en data URLs mediante la descarga y codificación de la imagen. Si una descarga falla, la función reemplaza el elemento por un marcador visual que preserva el espacio y la apariencia aproximada durante la captura. Para evitar bloquear la ejecución, procesa las imágenes en grupos y espera a que se resuelvan de forma controlada, apoyándose en promesas que manejan tanto éxitos como errores.

inlineBackgroundImages: La función inlineBackgroundImages se encarga de transferir e incrustar en el clon los recursos usados como background image, mask-image y border-image. Recorre el árbol fuente y el árbol del clon en paralelo, copia estilos relevantes y solo copia propiedades de border-image relacionadas cuando la fuente o la propiedad principal está presente y activa. También preserva background-color si no es transparente. El objetivo es que el clon no dependa de recursos externos en tiempo de renderizado.

Ventajas y consideraciones: Al combinar prepareClone, inlineImages e inlineBackgroundImages, captureDOM consigue crear una versión autónoma y fiel del elemento para su captura. Esto reduce errores por recursos bloqueados o por estilos computados en tiempo real. Sin embargo, el proceso puede incrementar el tamaño final por las imágenes en formato data URL y por fuentes embebidas, por lo que las opciones compress y fast permiten ajustar el equilibrio entre fidelidad y rendimiento.

Aplicaciones prácticas: Esta funcionalidad es útil para generar vistas previas, crear miniaturas, producir información visual para pruebas automatizadas o exportar secciones de UI. herramientas que necesitan capturas consistentes en entornos controlados se benefician de convertir recursos externos en elementos inline dentro del clon.

Sobre Q2BSTUDIO: Q2BSTUDIO es una empresa de desarrollo de software que ofrece aplicaciones a medida y software a medida para empresas que buscan soluciones personalizadas. Somos especialistas en inteligencia artificial e ia para empresas, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, agentes ia y soluciones con power bi. Nuestro enfoque combina ingeniería de software, seguridad y analítica avanzada para entregar productos robustos y escalables adaptados a cada cliente.

Servicios destacados de Q2BSTUDIO: desarrollo de aplicaciones a medida, software a medida para sectores verticales, integración de inteligencia artificial e ia para empresas, implementación de agentes ia para automatización, ciberseguridad adaptada a infraestructuras cloud, migraciones y gestión en servicios cloud aws y azure, y proyectos de inteligencia de negocio con power bi para visualización y toma de decisiones.

Beneficios de trabajar con Q2BSTUDIO: entregamos soluciones enfocadas en resultados, con procesos ágiles y un fuerte énfasis en seguridad y escalabilidad. Nuestra experiencia en inteligencia artificial permite crear agentes IA que automatizan procesos, mejorar análisis con servicios inteligencia de negocio y optimizar operaciones en la nube con servicios cloud aws y azure.

Acerca del autor: Ramu Narasinga estudia la arquitectura de codebases en proyectos open source y ha revisado el módulo captureDOM en el repositorio snapDOM para describir su comportamiento y diseño. Contacto por correo electrónico ramu.narasinga@gmail.com.

Referencias: https://github.com/zumerlab/snapdom/blob/main/src/core/capture.js#L28 https://github.com/zumerlab/snapdom/blob/main/src/api/snapdom.js#L261 https://github.com/zumerlab/snapdom?tab=readme-ov-file#options https://github.com/zumerlab/snapdom/blob/main/src/core/prepare.js#L25 https://github.com/zumerlab/snapdom/blob/main/src/modules/images.js#L15 https://github.com/zumerlab/snapdom/blob/main/src/modules/background.js#L26

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat