5 votes

Comment puis-je vérifier les images TIFF corrompues en C#?

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?

4voto

Michael Foo Points 11

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

3voto

Adriaan Points 2481

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.

2voto

Adrian Points 3408

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

0voto

Mark Redman Points 10816

Sans regarder le tiff, il peut être difficile de voir s'il est corrompu d'un point de vue visuel, mais si vous avez des problèmes de traitement d'image, il suffit de créer une fonction qui effectue un test de base pour ce type de traitement et de gérer l'erreur ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X