Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

Capture de Photos dans Votre Application MAUI avec .NET

Dans le développement d'applications mobiles, la capture et la manipulation de médias tels que les photos et les vidéos sont des fonctionnalités couramment requises. MAUI, la nouvelle plateforme de développement multiplateforme de Microsoft, offre des options intégrées pour ces tâches. Cependant, ces options peuvent parfois manquer de flexibilité, notamment en ce qui concerne la personnalisation du processus de capture de photos. Dans cet article, nous explorerons une alternative : l'utilisation du plugin MediaPlugin, actuellement en version 6.0.2 pour MAUI, qui offre des fonctionnalités supplémentaires telles que le redimensionnement et la définition de la qualité de compression des images capturées.

Configuration du Projet

Création du Projet

Commencez par créer un nouveau projet MAUI. Vous pouvez choisir .NET 6 ou .NET 7 comme framework cible, car le plugin est compatible avec les deux. Recherchez le package NuGet Xam.Plugin.Media et installez la version 6.0.2 (ou ultérieure).

Configuration Spécifique à la Plateforme

iOS

Ajoutez les permissions suivantes à votre fichier Info.plist (sous Platforms -> iOS) pour pouvoir sélectionner et capturer des photos et des vidéos :

<key>NSCameraUsageDescription</key>
<string>Cette application nécessite un accès à la caméra pour prendre des photos.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Cette application nécessite un accès aux photos.</string>
<key>NSMicrophoneUsageDescription</key>
<string>Cette application nécessite un accès au microphone.</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>Cette application nécessite un accès à la galerie de photos.</string>

Android

Le plugin ajoutera automatiquement les permissions nécessaires, mais vous devrez ajouter une configuration de fournisseur de fichiers. Ajoutez ce qui suit à votre fichier AndroidManifest.xml (sous Platforms -> Android) :

<provider android:name="androidx.core.content.FileProvider" 
 android:authorities="${applicationId}.fileprovider" 
 android:exported="false" 
 android:grantUriPermissions="true">
 <meta-data android:name="android.support.FILE_PROVIDER_PATHS" 
 android:resource="@xml/file_paths"></meta-data>
</provider>

Exemple de Code

Dans cet exemple, nous utiliserons un Slider pour définir la valeur de compression et un Button pour déclencher la capture de la photo.

private async void OnTakePhotoClicked(object sender, EventArgs e)
{
    var options = new StoreCameraMediaOptions { CompressionQuality = selectedCompressionQuality };
    var result = await CrossMedia.Current.TakePhotoAsync(options);
    // Traitement ultérieur du résultat
}

La variable selectedCompressionQuality est la valeur mise à l'échelle du Slider et est une valeur comprise entre 0 et 100, où 0 représente la compression maximale.

Affichage du Résultat

Après avoir pris la photo, nous l'afficherons dans un élément Image sur la page XAML :

UploadedOrSelectedImage.Source = result?.Path;

Pour évaluer l'effet de la compression, nous ajouterons également un Label qui affichera la taille du fichier résultant.

var fileInfo = new FileInfo(result?.Path);
var fileLength = fileInfo.Length;
FileSizeLabel.Text = $"Taille de l'image : {fileLength / 1000} kB";

Conclusion

L'utilisation du plugin MediaPlugin offre une flexibilité accrue pour la capture de photos dans les applications MAUI. Il permet non seulement de définir la qualité de compression, mais aussi d'autres paramètres comme la taille maximale de l'image. Cela peut être particulièrement utile dans des scénarios où vous avez besoin de contrôler l'utilisation de la bande passante ou de l'espace de stockage.

Avez-vous déjà utilisé ce plugin dans vos projets MAUI ? Quelles sont vos impressions ? N'hésitez pas à partager vos expériences et vos questions dans les commentaires ci-dessous.

Stay Tuned !

Le Guide Complet de.NET MAUI ! Lien direct Amazon : https://amzn.eu/d/95wBULD

Près de 500 pages dédiées à l'univers .NET MAUI !

Existe aussi en version Kindle à prix réduit !

Faites des heureux, partagez l'article !
blog comments powered by Disqus