> 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/detections-shapes/draw/draw-result-on-image.md).

# Draw Result On Image

Ce bloc fonction superpose un résultat textuel sur une image d'entrée en fonction d'une condition booléenne. Il est utile pour annoter des états pass/fail, des messages de statut ou tout autre résultat binaire directement sur l'image avant un traitement ou une affichage ultérieur.

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

`Image` (socket d'entrée) L'image qui recevra le texte superposé.\
`Condition` (socket d'entrée) Une valeur booléenne qui détermine quel texte et quelle couleur seront dessinés.\
`Success Condition Text` (socket d'entrée) Texte à afficher lorsque la condition est vraie.\
`Fail Condition Text` (socket d'entrée) Texte à afficher lorsque la condition est fausse.

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

`Image` (socket de sortie) L'image résultante avec le texte superposé.

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

`Font Scale` Ajuste la taille relative de la police du texte superposé pour s'adapter à différentes résolutions d'image.\
`Horizontal Position` Déplace le texte à gauche/droite sur une échelle simple 0..10 pour un placement rapide.\
`Vertical Position` Déplace le texte haut/bas sur une échelle simple 0..10 pour un placement rapide.

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

* Retour visuel pass/fail : lorsque la `Condition` est vraie, le bloc dessine le texte de `Success Condition Text` en vert ; sinon il dessine le texte de `Fail Condition Text` en bleu.
* Taille adaptée à la résolution : la taille de la police s'adapte aux dimensions de l'image pour que le texte reste lisible sur différentes résolutions.
* Placement rapide : les curseurs horizontal et vertical offrent un positionnement rapide, convivial et sans coordonnées manuelles.

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

1. Fournissez une image au socket `Image`.
2. Alimentez le socket `Condition` avec un signal booléen indiquant succès ou échec. Vous pouvez générer ce signal avec des blocs logiques tels que `Logic Input`, `Equals`, `And`, ou `Greater`.
3. Facultatif : renseignez des chaînes personnalisées dans `Success Condition Text` et `Fail Condition Text` pour contrôler les messages affichés.
4. Ajustez les contrôles `Font Scale`, `Horizontal Position` et `Vertical Position` jusqu'à ce que le texte soit correctement placé et dimensionné.
5. Utilisez la sortie `Image` pour poursuivre le traitement, afficher avec le bloc `Show Image`, ou enregistrer avec `Image Write` / `Image Logger`.

## 📊 Évaluation <a href="#evaluation" id="evaluation"></a>

Lors de l'exécution, le bloc copie l'image d'entrée, choisit le texte à dessiner en fonction du socket `Condition`, rend le texte en utilisant l'échelle de police et les paramètres de position choisis, puis renvoie l'image annotée via le socket de sortie `Image`.

## 💡 Astuces et conseils <a href="#tips-and-tricks" id="tips-and-tricks"></a>

* Combinez avec des blocs de détection comme `Object Detection`, `Object Detection - Custom`, ou `Mask Detection` pour afficher des résultats OK/NOK par image (par exemple, afficher "OK" lorsqu'un objet est détecté ou "Fail" lorsqu'il ne l'est pas).
* Utilisez `Draw Detections` en complément pour afficher les boîtes englobantes, puis ajoutez un label global pass/fail avec ce bloc.
* Placez un `Image ROI` ou `Image ROI Select` avant ce bloc pour recadrer une région d'intérêt et positionner le texte relativement à cette région.
* Pour journaliser ou sauvegarder les images annotées, connectez la sortie à `Image Logger`, `Image Write`, ou `Record Video`.
* Construisez des conditions complexes avec des blocs logiques comme `And`, `Or`, `Not` ou des comparaisons (`Greater`, `Equals`) et alimentez le booléen final dans le socket `Condition`.

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

* Aucun texte n'apparaît : vérifiez que les sockets `Success Condition Text` ou `Fail Condition Text` sont définis (ils peuvent être laissés vides, mais alors rien ne sera dessiné).
* Texte placé hors image : ajustez les curseurs `Horizontal Position` et `Vertical Position` ; augmentez ou diminuez `Font Scale` pour un meilleur ajustement sur des images très grandes ou très petites.
* Texte trop petit ou trop grand : modifiez `Font Scale` et prévisualisez avec le bloc `Show Image` pour trouver le bon équilibre.
