> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/spanish/function-blocks/blocks-reference/input-output/outputs-exports/image-logger.md).

# Image Logger

Este bloque de función guarda fotogramas de imagen entrantes en disco con opciones configurables de nombre de archivo, formato y límites de almacenamiento. Úsalo para capturar y archivar imágenes cuando se reciba una señal de disparo (trigger), o para volcar imágenes periódicamente para inspección.

## 📥 Entradas <a href="#inputs" id="inputs"></a>

`Folder Path` - Carpeta de destino donde se guardarán las imágenes. Proporciona una ruta válida.

`File Name` - Nombre de archivo opcional. Si está vacío, se usará un nombre basado en timestamp.

`Image Limit` - Límite opcional del número máximo de imágenes a mantener en la carpeta. Cuando se excede, se eliminan las imágenes más antiguas.

`Input Image` - Datos de imagen que se guardarán. Conecta cualquier bloque que produzca imágenes a esta entrada.

`Trigger` - Trigger booleano que controla el guardado. Cuando la condición del trigger está activa, la imagen se escribirá según la configuración.

## 📤 Salidas <a href="#outputs" id="outputs"></a>

Este bloque de función no produce salidas.

## 🕹️ Controles <a href="#controls" id="controls"></a>

`Save Mode` - Control desplegable para elegir entre `Full Size` (PNG) y `Compressed` (JPEG). El modo comprimido reduce el tamaño del archivo a costa de la calidad.

## 🎨 Características <a href="#features" id="features"></a>

* Nombres automáticos con timestamp cuando `File Name` no está proporcionado.
* Compresión opcional de imagen para reducir el uso de disco.
* Límite de cantidad de imágenes en carpeta con eliminación automática de los archivos más antiguos para hacer cumplir el límite.
* Funciona con cualquier fuente de imagen entrante (cámaras, loaders o imágenes procesadas).
* Mensajes claros de info y error se registran cuando el guardado tiene éxito o falla.

## 📝 Instrucciones de uso <a href="#usage" id="usage"></a>

1. Define la carpeta de destino proporcionando `Folder Path` o usa un bloque que lo suministre.
2. Opcionalmente proporciona un `File Name`; déjalo vacío para usar un nombre automático con timestamp.
3. Opcionalmente establece `Image Limit` para controlar cuántas imágenes se conservan en la carpeta.
4. Conecta una fuente de imagen a `Input Image`.
5. Usa `Trigger` para controlar cuándo se escriben las imágenes. Activa el trigger para guardar la imagen actual.
6. Elige el `Save Mode` deseado para salida PNG o JPEG comprimido.

## 📊 Evaluación <a href="#evaluation" id="evaluation"></a>

Cuando el bloque recibe un `Input Image` válido y la condición de `Trigger` se cumple, intenta guardar la imagen en la ruta indicada por `Folder Path` usando el `Save Mode` seleccionado. Si la carpeta contiene más imágenes que `Image Limit`, los archivos más antiguos se eliminan para respetar el límite. Mensajes informativos indican el éxito; mensajes de error explican fallos (ruta inválida, permisos de escritura, etc.).

## 💡 Consejos y trucos <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Usa `Choose Folder` para permitir que los usuarios seleccionen visualmente la carpeta destino y pásala a `Folder Path`.
* Usa `Date-Time` (timestamp) junto con `File Name` para crear nombres legibles y ordenables cronológicamente.
* Previsualiza imágenes antes de guardarlas enviando la misma imagen a `Show Image` para inspeccionar los fotogramas.
* Reduce el uso de disco añadiendo un `Image Resizer` antes de este bloque para redimensionar imágenes muy grandes.
* Al capturar de fuentes en vivo, combínalo con `Camera USB`, `Camera IP (ONVIF)` o `Stream Reader` como proveedor de imágenes para archivar fotogramas de cámaras o streams.
* Si necesitas metadatos estructurados junto a los archivos, envía las salidas de detección/medición a `CSV Export` para registrar detalles (nombre de archivo, timestamp, contadores).
* Usa `File/Folder Operations` para crear carpetas o gestionar archivos guardados programáticamente antes o después del registro.
* Para flujos que escriben múltiples imágenes a la vez, considera `Multi Image Write` o `Image Write` como alternativas cuando necesites diferentes esquemas de nombre o comportamiento de trigger.

## 🛠️ Solución de problemas <a href="#troubleshooting" id="troubleshooting"></a>

* Errores de carpeta inválida: verifica que `Folder Path` exista y que la aplicación tenga permisos de escritura. Usa `File/Folder Operations` para crear carpetas necesarias primero.
* Ninguna imagen guardada: confirma que `Input Image` esté conectado y que `Trigger` esté activo cuando esperas guardar.
* Acumulación excesiva de archivos: establece un `Image Limit` razonable o ejecuta una rutina de limpieza con `File/Folder Operations`.
* Archivos grandes ralentizan el guardado: cambia `Save Mode` a `Compressed` o añade un `Image Resizer` aguas arriba.
* Si los nombres de archivo colisionan, incluye un timestamp (vía `Date-Time`) o un índice para asegurar nombres únicos.
