> 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/french/function-blocks/blocks-reference/input-output/image-inputs/play-folder.md).

# Play Folder

Ce bloc de fonction lit des images depuis un dossier sélectionné et renvoie un fichier par évaluation. Utilisez-le pour parcourir des jeux d'images pas à pas, prévisualiser des séquences ou fournir des images à des blocs de traitement en aval. Vous pouvez choisir un dossier par défaut avec le bouton `Select folder`, le remplacer via l'entrée `Folder Path`, filtrer les fichiers avec un motif glob, et contrôler la lecture avec les contrôles `Mode` et `Order`.

## 📥 Entrées <a href="#inputs" id="inputs"></a>

`Folder Path` Chaîne optionnelle qui remplace le dossier par défaut choisi avec le bouton. Fournissez un chemin de dossier complet pour changer la source à l'exécution.

`Restart` Entrée booléenne optionnelle. Lorsqu'elle est à True, le bloc réinitialise la lecture pour le `Mode` courant et renvoie l'image de bord réinitialisée sur cette évaluation.

Remarque : ce sont des prises d'entrée (input sockets).

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

`Image` L'image courante lue depuis le dossier. C'est une sortie d'image (image output socket).

`File Path` Chemin absolu du fichier image courant. C'est une sortie de type chaîne (string output socket).

`Restarted` Booléen à True si le bloc a renvoyé une image d'arrêt ou réinitialisée sur cette évaluation. C'est une prise de sortie.

Remarque : ce sont des prises de sortie (output sockets).

## 🕹️ Contrôles <a href="#controls" id="controls"></a>

`Select folder` Bouton pour choisir le dossier par défaut utilisé lorsque `Folder Path` est vide.

`Glob pattern` Champ texte pour filtrer les fichiers en utilisant la syntaxe Python glob (exemples : `*`, `*.png`, `**/*`).

`Mode` Menu déroulant pour contrôler la direction de lecture : `Forward`, `Backward` ou `Stop`.

`Order` Menu déroulant pour sélectionner l'ordre des fichiers : `Name` (tri naturel par nom de fichier) ou `Time` (date de modification du fichier).

Remarque : ce sont des widgets visibles qui déterminent comment le bloc sélectionne et renvoie les fichiers.

## 🎨 Fonctionnalités <a href="#features" id="features"></a>

* Gestion de playlist : construit et met en cache la liste des fichiers image correspondant au dossier choisi, au `Glob pattern` et à l'`Order`.
* Lecture flexible : prend en charge les modes `Forward`, `Backward` et `Stop` avec comportement de bouclage.
* Remplacement de dossier à l'exécution : possibilité de remplacer la source via l'entrée `Folder Path` sans modifier le dossier par défaut enregistré.
* Gestion du redémarrage : l'entrée `Restart` réinitialise explicitement la lecture et renvoie l'image d'extrémité sur cette évaluation.
* Métadonnées de fichier : renvoie le chemin absolu pour journalisation ou traitement en aval.
* Téléversement de trames asynchrone optionnel : si disponible, les trames peuvent être téléversées en arrière-plan pour journalisation distante.

## ⚙️ Mécanisme d'exécution <a href="#running-mechanism" id="running-mechanism"></a>

À chaque évaluation, le bloc détermine le dossier effectif (par défaut ou remplacé), vérifie le `Glob pattern` et l'`Order`, et met à jour sa playlist interne si nécessaire. Il suit l'index courant et renvoie l'image correspondant à cet index ainsi que son chemin de fichier et le flag `Restarted`. Après avoir renvoyé l'image courante, le bloc prépare l'index suivant en fonction du `Mode` sélectionné (`Forward`/`Backward`/`Stop`), en effectuant un retour au début ou à la fin si nécessaire.

## 📝 Instructions d'utilisation <a href="#usage" id="usage"></a>

1. Cliquez sur le bouton `Select folder` pour choisir un dossier par défaut, ou laissez-le vide et fournissez un chemin à l'exécution via l'entrée `Folder Path`.
2. Saisissez un `Glob pattern` pour filtrer les fichiers (utilisez `*` pour tout ou `*.jpg` / `**/*.png` pour des types spécifiques).
3. Choisissez `Mode` pour avancer, reculer ou maintenir l'image courante entre les évaluations.
4. Choisissez `Order` pour trier les fichiers par nom ou par date de modification.
5. Envoyez éventuellement `Restart` = True pour réinitialiser la lecture sur l'image de bord du mode courant.

## 💡 Conseils et astuces <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Prévisualisez les images dans une fenêtre plus grande en envoyant la sortie `Image` vers le bloc `Show Image` pour un affichage interactif lors du parcours du dossier.
* Sauvegardez les images intéressantes avec `Image Write` ou exportez des exemples en lot avec `Image Logger` connecté à la sortie `Image`.
* Si les images sont trop volumineuses pour les blocs IA en aval, connectez `Image Resize` ou `Image Resizer` après la sortie `Image` pour réduire le temps de traitement.
* Pour vous concentrer sur une zone spécifique de chaque image avant l'analyse, enchaînez `Image ROI Select` (ou `Image ROI`) après ce bloc et alimentez les détecteurs tels que `Find Object` ou `Mask Detection` avec le résultat recadré.
* Pour des rapports visuels ou des vues combinées, regroupez plusieurs trames et passez-les à `Collage Images` ou `Image Concatenate`.
* Lors de la création de flux basés sur des jeux de données, utilisez la sortie `File Path` pour créer des journaux ou des CSV parallèlement aux données d'image via des blocs d'exportation de données.

(astuce : combinez uniquement avec les blocs de fonction listés et disponibles dans l'environnement.)

## 🛠️ Dépannage <a href="#troubleshooting" id="troubleshooting"></a>

* Aucun fichier trouvé : Vérifiez que le dossier sélectionné contient des extensions d'image prises en charge et que le `Glob pattern` correspond bien aux noms de fichiers.
* Remplacement de dossier invalide : Assurez-vous que l'entrée `Folder Path` est une chaîne non vide et pointe vers un répertoire existant.
* Ordre inattendu : Utilisez `Order` = `Time` pour trier par horodatage de modification ; utilisez `Name` pour un ordre prévisible par nom de fichier (le tri naturel gère les parties numériques).
* Lecture qui n'avance pas : Vérifiez que `Mode` n'est pas sur `Stop` et que le bloc reçoit des évaluations (certains modes d'exécution n'exécutent le scénario que lorsqu'il est lancé).
