J'ai cherché comment vérifier si un fichier TIFF est corrompu ou non. La plupart suggère d'encadrer la fonction Image.FromFile dans un bloc try. S'il génère une OutOfMemoryException, c'est qu'il est corrompu. Quelqu'un a-t-il utilisé cela? Est-ce efficace? Des alternatives?
Réponses
Trop de publicités?Veuillez consulter le logiciel gratuit appelé LibTiff .NET. Il a la fonction pour vérifier si chaque page dans un fichier TIF est corrompue ou non. Même partiellement corrompu aussi aucun problème
http://bitmiracle.com/libtiff/
Merci
De nombreux fichiers tiff ne s'ouvrent pas dans le GDI+ standard .NET. C'est-à-dire, si vous utilisez Windows XP. Window 7 est bien meilleur. Ainsi, tout fichier non pris en charge par GDI+ (c.-à-d. fax, niveaux de gris 16 bits, 48bpp RGB, tiff tuilé, tiff tuilé pyramidal, etc.) est alors considéré comme "corrompu". Et ce n'est pas tout, tout ce qui entraîne un bitmap de plus de quelques centaines de Mio sur un système 32 bits entraînera également une exception de mémoire insuffisante.
Si votre objectif est de prendre en charge autant que possible de la norme TIFF, veuillez commencer par LibTiff (dérivés). J'ai utilisé LibTiff.NET de BitMiracle (LGPL), qui a bien fonctionné pour moi. Veuillez consulter mes autres messages
De nombreux utilitaires TIFF sont également basés sur LibTIFF, certains d'entre eux sont portés en C#.NET. Ce serait ma suggestion si vous voulez valider le TIFF.
Quant à la spécification TIFF suggérée dans d'autres réponses : bien sûr, cela vous donne un contrôle au niveau des bits. Mais selon mon expérience, vous n'aurez pas besoin d'aller aussi loin pour avoir un bon support TIFF. Le format est si polyvalent qu'il vous coûterait un temps énorme pour commencer le support à partir de zéro.
Cela ne sera corrompu que dans le sens où les méthodes des frameworks ne peuvent pas l'ouvrir.
Il y a certains types de fichiers TIFF que le framework ne peut pas ouvrir - (dans mon cas je ne me souviens pas exactement du type, je pense que c'était l'un des types FAX...)
Cela peut vous suffire si vous cherchez simplement à utiliser le framework pour manipuler des images. Après tout, si vous ne pouvez pas l'ouvrir, vous ne pouvez pas l'utiliser...
ImageMagic - pourrait vous offrir plus de possibilités ici