Je développe une application de base de données de document qui manipule des images de TIFF. Lorsque vous annotez des images, afin que l'interface utilisateur ne présente que des choix en noir et blanc pour les images bitonales (Format1bppIndexed) par rapport aux couleurs multiples pour les images avec une profondeur de couleur plus élevée, je dois tester si un TIFF est bitonal. Voici ma fonction:Test .NET pour l'image TIFF bitonale sans exception de trapping
private bool IsBitonal(string filePath) { bool isBitonal = false; try { Bitmap bitmap = new Bitmap(sourceFilePath); Graphics graphics = Graphics.FromImage(bitmap); } catch (Exception ex) { isBitonal = true; } return isBitonal; }
Cela fonctionne mais il n'est pas gracieux. L'exception de format de pixel indexée lancée est décrite ici: http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx.
Le recouvrement d'une exception pour un flux de programme normal est une mauvaise pratique. En outre, il est concevable qu'une exception différente puisse être levée. Existe-t-il une meilleure façon d'implémenter une fonction IsBitonal qui ne repose pas sur le piégeage d'une exception? J'ai essayé de rechercher sur le web des informations et j'ai trouvé des exemples de chargement d'une image TIFF et d'éviter l'exception en convertissant dans un format différent, mais je n'ai trouvé aucun exemple de test simple pour savoir si un fichier TIFF était ou non l'image est bitonale.
Merci. Pouvez-vous juste vérifier la propriété PixelFormat de votre bitmap?
Vérification de la propriété bitmap.PixelFormat. Merci pour l'info. – user262310