Aller au contenu
Power Platform Hub Parler à un expertUn expert

Power Apps

Intégrer la caméra dans vos applications Power Apps

Prendre une photo depuis une application et la ranger avec le bon dossier : inspection, réclamation, chantier. Le bon contrôle, les formules et les pièges.

La caméra dans Power Apps permet de prendre une photo directement depuis une application, sans quitter l’écran de saisie, puis de la ranger avec le reste du dossier. Dans une entreprise, elle sert à documenter ce qui se passe sur le terrain : un défaut sur une machine, un colis abîmé, l’avancement d’un chantier. Deux contrôles existent, et leur différence de qualité d’image est le premier point à connaître.

Ce que la photo change sur le terrain

Prenons une situation type : un technicien de maintenance intervient chez un client. Aujourd’hui, il prend une photo avec son téléphone, l’envoie par e-mail le soir, et quelqu’un la rattache à la bonne fiche. Avec une application Power Apps, il ouvre la fiche d’intervention, prend la photo au même endroit et enregistre : l’image part avec le dossier, sans tri à faire ensuite. Le responsable voit le constat sans attendre, et personne ne cherche plus quelle photo va avec quelle intervention.

D’autres situations reviennent souvent :

  • Inspection et contrôle qualité : un défaut constaté est accompagné de sa preuve visuelle.
  • Réclamation : la photo du problème, jointe au formulaire, accélère le traitement de la demande.
  • Chantier : chaque étape est documentée, avec la date de la prise de vue enregistrée dans la même ligne.
  • Inventaire : une photo de l’article ou de l’équipement facilite son identification.

Avant de construire, posez deux questions : la photo doit-elle être lisible en détail, et où sera-t-elle stockée ? Les réponses décident du contrôle à utiliser et de la façon d’enregistrer l’image.

Caméra ou Ajouter une image : choisir le bon contrôle

Beaucoup de tutoriels ne présentent que le contrôle Caméra. C’est pourtant le mauvais choix dès que le détail compte, car ses images sont limitées à 640 sur 480 pixels, d’après la documentation Microsoft du contrôle Caméra.

Critère Caméra Ajouter une image
Prise de vue Dans l’écran de l’application, avec aperçu en direct Par la fenêtre de l’appareil : photo ou image existante
Qualité 640 x 480 pixels au maximum Pleine résolution
Métadonnées (date, position) Aucune Absentes sur iOS, d’après Microsoft
Formule pour lire l’image Camera1.Photo AddMediaButton1.Media
À choisir pour Une photo témoin rapide, un aperçu immédiat, des images légères Un défaut à lire en détail, un document, une preuve à zoomer

Avec Ajouter une image, mettez UseMobileCamera à true pour imposer la prise de vue et interdire le choix d’une image déjà présente sur l’appareil. C’est utile quand la photo doit être prise sur place. La documentation du contrôle Ajouter une image liste ses autres réglages.

Ajouter et régler le contrôle caméra

  1. Dans Power Apps Studio, ouvrez le volet Insérer, catégorie Média, puis ajoutez Caméra.
  2. Autorisez l’application à utiliser la caméra si la demande apparaît.
  3. Dimensionnez le contrôle et placez-le à portée de pouce : sur le terrain, les utilisateurs portent parfois des gants ou travaillent d’une seule main.
  4. Ajoutez un contrôle Image et mettez dans sa propriété Image la formule Camera1.Photo.
  5. Lancez l’aperçu avec F5, puis touchez le contrôle caméra pour prendre la photo.

Point à savoir : la photo se prend en touchant le contrôle lui-même, et sa propriété Photo contient toujours la dernière image. Le contrôle Image ajouté à côté permet à l’utilisateur de la vérifier et de la reprendre avant l’enregistrement.

Les propriétés les plus utiles :

  • Camera : le numéro de la caméra à utiliser. Il ne s’agit pas d’un simple choix entre avant et arrière, car un appareil peut en avoir plusieurs.
  • AvailableDevices : la table des caméras disponibles, avec les colonnes Id et Name.
  • Stream, StreamRate et OnStream : la capture automatique, à un intervalle de 100 millisecondes à 1 heure. Cela sert par exemple à photographier un poste chaque minute.
  • Visible et DisplayMode : pour n’afficher ou n’activer la caméra qu’au bon moment.

Pour laisser l’utilisateur choisir la caméra, insérez une liste déroulante, mettez Camera1.AvailableDevices dans sa propriété Items, puis cette formule dans la propriété Camera de la caméra :

Dropdown1.Selected.Id

Prendre, vérifier et garder plusieurs photos

Chaque prise remplace la précédente dans Photo. Pour en garder plusieurs, ajoutez-les à une collection, un tableau temporaire propre à l’application. Dans la propriété OnSelect de la caméra :

Collect(MesPhotos, Camera1.Photo)

Ajoutez une galerie verticale, avec MesPhotos dans Items. Dans le contrôle Image de la galerie, la propriété Image reçoit ThisItem.Url. Pour retirer une photo ratée, placez ceci dans OnSelect de cette image :

Remove(MesPhotos, ThisItem)

Pour rattacher un commentaire à chaque photo, créez un enregistrement. Dans la galerie, l’image se lit alors avec ThisItem.Photo :

Collect(MesPhotos, {Photo: Camera1.Photo, Commentaire: TextInput1.Text, Prise: Now()})

Pour limiter le nombre de photos, désactivez la caméra une fois le maximum atteint, avec cette formule dans sa propriété DisplayMode :

If(CountRows(MesPhotos) >= 3, DisplayMode.Disabled, DisplayMode.Edit)

Les formules de cet article utilisent la virgule. Dans une interface en français, selon la langue ou les réglages régionaux, le séparateur d’arguments devient le point-virgule (;) et l’enchaînement de deux formules s’écrit ;;. Microsoft appelle aussi à la prudence avec les images en collection : elles occupent la mémoire de l’appareil. Envoyez-les régulièrement vers la source.

Enregistrer les photos dans vos données

Dans Dataverse

Dans Dataverse, la base de données de la Power Platform, ajoutez à votre table une colonne de type Image. Les écritures passent par la fonction Patch, qui crée ou modifie une ligne sans formulaire. La formule la plus sûre crée d’abord la ligne, puis ajoute l’image :

Set(varInspection, Patch(Inspections, Defaults(Inspections), {Titre: "Contrôle quai 3"}));
Patch(Inspections, varInspection, {Photo: Camera1.Photo})

Pourquoi deux étapes : Dataverse n’accepte à la création d’une ligne que la colonne d’image dite principale. Si votre colonne l’est, une seule écriture suffit.

Deux réglages sont à contrôler. Une colonne d’image accepte 30 Mo au plus, selon la limite que vous lui fixez. Surtout, Dataverse génère une miniature de 144 pixels de côté : sans l’option de stockage de l’image complète, activée sur la colonne, vous ne gardez pas l’original. La documentation Microsoft des colonnes d’image précise ces règles.

Dans SharePoint

Pour relier Power Apps à SharePoint, la méthode la plus courante consiste à transmettre l’image à un flux, qui crée ensuite le fichier dans une bibliothèque de documents. La fonction JSON transforme la photo en texte encodé en base64 :

Set(varPhotoTexte, Substitute(JSON(Camera1.Photo, JSONFormat.IncludeBinaryData), """", ""));
EnregistrerPhoto.Run(varPhotoTexte)

Substitute retire les guillemets ajoutés par JSON, et EnregistrerPhoto est le nom de votre flux. Dans Power Automate, l’outil qui enchaîne ces actions dans le cloud, l’action Créer un fichier reçoit alors l’expression dataUriToBinary() appliquée au texte reçu. Le flux peut aussi prévenir un responsable ou classer le fichier dans le bon dossier.

Autorisations, pannes courantes et hors connexion

L’appareil doit avoir une caméra, et l’utilisateur doit autoriser son usage lors de la première ouverture. S’il refuse, le contrôle ne fonctionne pas. Prévoyez un message qui explique où changer ce réglage, et une autre façon d’ajouter une image avec Ajouter une image.

  • Navigateurs. Microsoft cite la prise en charge d’Edge, Chrome, Firefox et Opera, ainsi que des appareils Android et iOS. Les autres plateformes affichent un avertissement. Safari ne figure pas dans cette liste : sur iPhone, utilisez l’application Power Apps Mobile.
  • Caméra bloquée. Vérifiez les autorisations du navigateur, souvent signalées par une icône barrée dans la barre d’adresse.
  • Appareils d’entreprise. Une stratégie de sécurité peut interdire la caméra. Voyez ce point avec votre service informatique avant le déploiement.
  • Démarrage lent. Selon le modèle, la caméra peut mettre quelques secondes à s’initialiser. C’est normal, et il vaut mieux le dire aux utilisateurs.
  • Mémoire faible. Sur un appareil qui manque de mémoire, la caméra est désactivée temporairement pour éviter un plantage.
  • Application Windows. Power Apps pour Windows peut planter avec ce contrôle : Microsoft conseille alors le lecteur web.

Sans réseau, SaveData(MesPhotos, "photosLocales") garde les photos sur le téléphone, par exemple sur un bouton Sauvegarder. À la réouverture, LoadData(MesPhotos, "photosLocales", true) les recharge, et true évite une erreur si rien n’a encore été sauvegardé.

Ces fonctions ne fonctionnent pas pendant la création dans le navigateur : testez sur un téléphone. Microsoft limite leur stockage à 1 Mo dans Teams et dans un navigateur, et évoque de 30 à 70 Mo de mémoire disponible en général sur mobile. Quelques photos passent, un chantier entier non. Enfin, si votre besoin porte sur l’identification, le lecteur de codes-barres de Power Apps sera plus rapide et plus fiable qu’une photo.

Quand se faire accompagner sur la gestion des photos

Pour quelques images par semaine rangées dans une liste, vous pouvez tout à fait avancer seul. Faites-vous accompagner quand les volumes deviennent importants, quand les photos servent de preuve en cas de litige, ou quand elles montrent des personnes ou des données sensibles. Il faut alors décider où elles sont stockées, combien de temps, qui y accède et ce que cela coûte en capacité, et ces choix sont difficiles à reprendre une fois des milliers d’images enregistrées. Notre page sur les applications métier conçues avec Power Apps situe ces projets.

Questions fréquentes

Peut-on prendre plusieurs photos à la suite avec le contrôle caméra ?

Oui. Chaque nouvelle photo remplace la précédente dans la propriété Photo, mais vous pouvez les conserver avec Collect(MesPhotos, Camera1.Photo) dans OnSelect. Enregistrez-les ensuite dans votre source de données, car les images en collection occupent la mémoire de l’appareil.

Le contrôle caméra fonctionne-t-il sur tous les navigateurs ?

Non. Microsoft indique la prise en charge d’Edge, Chrome, Firefox et Opera, ainsi que des appareils Android et iOS. Les autres navigateurs et plateformes affichent un avertissement. Une politique d’entreprise peut également bloquer l’accès à la caméra.

Quelle est la qualité des images prises avec le contrôle caméra ?

Elle est limitée à 640 sur 480 pixels. Cela suffit pour une photo témoin, pas pour lire un numéro de série ou un petit défaut. Dans ces cas, utilisez le contrôle Ajouter une image, qui garde la pleine résolution.

Comment limiter le nombre de photos qu’un utilisateur peut prendre ?

Comptez les photos avec CountRows et passez le contrôle en DisplayMode.Disabled une fois la limite atteinte. Vous pouvez aussi le masquer avec la propriété Visible. Affichez le nombre de photos restantes, pour que l’utilisateur comprenne pourquoi la caméra ne répond plus.

Peut-on annoter les photos prises dans l’application ?

Le contrôle caméra ne propose pas d’annotation. La solution la plus simple est un champ de commentaire enregistré avec la photo, comme dans la formule avec Commentaire plus haut. Pour dessiner sur l’image, il faudra un composant spécifique ou un service externe appelé par un flux.

Quelle est la taille maximale des images stockées ?

Elle dépend de la source. Dans Dataverse, une colonne d’image accepte 30 Mo au plus, et n’accepte que les formats GIF, JPEG, BMP et PNG. Sur SharePoint, vérifiez les limites de votre bibliothèque. Avec le contrôle caméra, limité à 640 sur 480 pixels, les fichiers restent de toute façon petits.

Parlons de votre besoin

Décrivez ce qui vous fait perdre du temps. Nos experts vous disent quel outil convient.

  1. Vous décrivez votre besoinRéponse sous 48 h ouvrées.
  2. On en parle 40 minutesL’échange est offert.
  3. Vous voyez une maquetteAvant tout engagement.
  4. Votre outil est livréDe 4 à 6 semaines.
Ce qui vous intéresse (plusieurs choix possibles)

Vos informations servent seulement à répondre à votre demande.