2010-07-22 3 views
0

J'essaie de lire un fichier TIFF auquel un fichier ANN est associé. Le tiff ne s'ouvre pas avec les spectateurs standards. Lorsque j'ouvre le fichier ANN binaire, le seul sens que je puisse en tirer est qu'il a été créé avec le logiciel de Pixel Translations Inc., au format PIXTIFF.Quelqu'un sait comment lire une traduction de pixel (compression pixtiff)?

Est-ce que quelqu'un sait comment je peux voir ce fichier manuellement ou par programmation? Y a-t-il un logiciel gratuit que je peux utiliser en tant que spectateur?

Merci!

Répondre

0

Les produits d'imagerie Altalasoft peuvent lire (et créer) ces fichiers.

Voir: http://www.atalasoft.com/

En outre, vous pouvez souvent lire les fichiers TIFF avec l'imagerie standard de Windows SDK ou même les standards GDI + bibliothèques. (Ou bien, les bibliothèques .NET System.Windows.Drawing.)

Certains fichiers tif PIXTIFF sont de type 6 et utilisent la compression JPEG. J'ai trouvé la meilleure bibliothèque qui lira ceux-ci est la bibliothèque LibTiff (ou la version .NET, LibTiff.net par BitMiracle: http://bitmiracle.com/libtiff/).

3

Dans l'intérêt de la divulgation complète, je suis un employé Atalasoft.

Nous avons eu une entreprise avec nous à cause de ce post et je voudrais aider le plus grand nombre possible de personnes susceptibles de rencontrer le même problème.

La société avait des fichiers qui permettent d'identifier en interne comme PIXTIFF. La chaîne de caractères spécifique était "Pixel Translations Inc., PIXTIFF Version" et un numéro de version. Cependant, ces fichiers contenaient quelques centaines d'octets avant l'en-tête tiff, ce qui les empêchait de s'ouvrir dans les visionneuses standard.

J'ai trouvé un autre ensemble de fichiers en recherchant des tiffs valides pour référence avec la même chaîne PIXTIFF qui fonctionnait déjà avec tiffs. Si quelqu'un les avait déjà «réparés» ou si un processus non-standard avait créé l'ensemble, cette société ne pouvait pas le dire. Donc, si vous trouvez que vous avez ces fichiers binaires PIXTIFF, vérifiez d'abord s'ils sont des tiffs valides avant de continuer. Faites une copie, donnez-lui une extension .tif et utilisez quelque chose comme IrfanView pour essayer de l'ouvrir. En regardant le Tiff header spec: Les fichiers Tiff commencent par II * (0x49 0x49 0x2A 0x00) ou MM * (0x4D 0x4D 0x2A 0x00), puis le décalage par rapport au premier répertoire d'images à partir du début du fichier. (Bien que dans mon expérience la commande big-endian MM est rare.)

Les fichiers en question ont pu être corrigés en effaçant toutes les données avant l'entête tiff. Les décalages étaient déjà corrects par rapport à l'en-tête tiff.

J'ai inclus un exemple rapide C# de ce que je faisais faire localement. Cela devrait être assez simple pour que cela se fasse dans la langue de votre choix.

Remarque: Stream.CopyTo est disponible dans .Net 4.0 et versions ultérieures uniquement. Cela corrige également seulement pour l'un des deux en-têtes possibles, mais il a réparé tous les fichiers en main.

byte[] header = { 0x49, 0x49, 0x2A, 0x00 }; 
int found = 0; 

string filename = @"fileToFix"; 

using (Stream fileToFix = File.OpenRead(filename)) 
{ 
    while (found < 4 && fileToFix.Position < fileToFix.Length) 
    { 
     if (header[found] == fileToFix.ReadByte()) 
      found++; 
     else 
      found = 0; 
    } 

    if (found != 4) //Didn't find a tiff. 
     return; 

    fileToFix.Seek(-4, SeekOrigin.Current); //We're already 4 bytes in the the header, go back. 

    using (Stream fixedFile = File.OpenWrite(Path.Combine(Path.GetDirectoryName(filename), Path.GetFileNameWithoutExtension(filename) + ".fixed.tif"))) //Same directory, same name but ending in .fixed.tif. 
     fileToFix.CopyTo(fixedFile); 
} 
Questions connexes