2.7 KiB
2.7 KiB
Generar Screenshots de Ejemplos
Debido a restricciones CORS del navegador, no podemos capturar el canvas automáticamente con toDataURL(). En su lugar, necesitamos screenshots manuales.
Método Rápido: Captura de Pantalla
1. Preparar el Navegador
cd frontend
npm run dev
2. Para Cada Ejemplo
- Ve a http://localhost:5173/examples
- Haz click en un ejemplo (ej: "Blink LED")
- Espera a que se cargue en el editor
- Ajusta el zoom del canvas si es necesario para que el circuito se vea bien centrado
3. Capturar Solo el Canvas
Windows (Win + Shift + S):
- Presiona
Win + Shift + S - Selecciona el área del simulador (panel derecho)
- La captura se guarda en el portapapeles
Guardar la imagen:
- Abre Paint o cualquier editor
- Pega (Ctrl + V)
- Guarda como PNG en
doc/examples/[nombre-ejemplo].png
4. Nombres de Archivo
Usa el ID del ejemplo:
blink-led.png- Solo Arduinotraffic-light.png- Arduino + 3 LEDs (rojo, amarillo, verde)button-control.png- Arduino + botón + LEDfade-led.png- Arduino + LED azulserial-hello.png- Solo Arduinorgb-led.png- Arduino + LED RGBsimon-says.png- Arduino + 4 LEDs + 4 botones
5. Actualizar el Código
Una vez tengas las imágenes, edita frontend/src/data/examples.ts:
{
id: 'blink-led',
title: 'Blink LED',
description: 'Classic Arduino blink example - toggle an LED on and off',
category: 'basics',
difficulty: 'beginner',
thumbnail: '/doc/examples/blink-led.png', // ← Agregar esta línea
code: `...`,
// ... resto
}
Alternativa: Script Browser DevTools
Si prefieres algo más automatizado:
- Abre el ejemplo en http://localhost:5173
- Abre DevTools (F12)
- Ve a la consola
- Ejecuta:
// Tomar screenshot del canvas del simulador
const simulatorPanel = document.querySelector('.simulator-panel');
const rect = simulatorPanel.getBoundingClientRect();
// Usar la API de screenshot del navegador (Chrome/Edge)
chrome.tabs.captureVisibleTab(null, {format: 'png'}, function(dataUrl) {
const link = document.createElement('a');
link.download = 'example.png';
link.href = dataUrl;
link.click();
});
Nota: Este método requiere una extensión del navegador.
Dimensiones Recomendadas
- Ancho: 600-800px
- Alto: 400-600px
- Formato: PNG
- Fondo: El mismo del canvas (#1e1e1e)
Resultado Esperado
Cada tarjeta en /examples mostrará la screenshot real del circuito en lugar del placeholder genérico.
Limpieza (Opcional)
Una vez tengas las screenshots, puedes eliminar:
frontend/src/utils/captureCanvasPreview.ts(ya no se necesita)frontend/src/utils/generateExamplePreview.tsx(SVG antiguo)