2010-04-30 22 views
2

Je possède un format d'image propriétaire SNG (un format propriétaire) qui possède un tableau complet de données d'image avec des méta-informations d'image dans un fichier HDR séparé. Maintenant, j'ai besoin de convertir ce format SNG en format Standard TIFF 6.0. J'ai donc étudié le format TIFF, c'est-à-dire son en-tête, les répertoires de fichiers d'images (IFD) et les données d'images dénudées.Conversion de format de fichier en format TIFF. Quelques problemes?

Maintenant, j'ai quelques préoccupations au sujet de cette conversion. S'il vous plaît, aidez-moi

  1. GNS Continuous données vs données Stripped TIFF: Dois-je convertir GNS données au format TIFF en tant que données continous dans une bande (données de charge/temps modifier problème?) Ou divertissez stripoffsets logiques des données d'image RAS.

  2. GNS en-tête de données utilise uniquement nécessaire Meta information, donc lors de la conversion au format TIFF du GNS, certaines informations ne peuvent être récupérées telles que NewSubFileType, Tag logiciel etc.

    Donc cela soulève une préoccupation que, après la conversion si Toute information de répertoire manquante, telle que NewSubFileType, Software Tag, etc. est une condition nécessaire et suffisante pour le fichier TIFF.

  3. codage de chaque composante de pixel de l'échantillon RVB dans les données GNS:

Ici, chaque image GNS données bande par composante de pixel est codé comme:

Out^[i] := round(LineBuffer^[i * 3] * **0.072169** + LineBuffer^[i * 3 + 1] * **0.715160** + LineBuffer^[i * 3+ 2]* **0.212671**); 

façon Seulement, je déduis est que chaque pixel est représenté avec 3 composantes RVB et un coefficient est multiplié avec chaque composant pour que le visualiseur SNG utilise les informations de couleur RVB des données d'image SNG. (Développeur qui travaille plus tôt sur cette gauche, maintenant je suis la trace :))

Ainsi, lors de la conversion de ce TIFF, le même décodage doit être fait. Cela soulève une préoccupation que la façon dont les informations RBG dans le TIFF est produite, ou mieux avons-nous besoin de cette information ?.

S'il vous plaît aider ...

+1

La conversion de pixels que vous avez fournie ressemble à sRGB à niveaux de gris. – ergosys

+0

Vous devriez probablement marquer ceci avec n'importe quel langage de programmation (et OS aussi, peut-être) que vous utilisez. Cela ressemble à quelque chose de propriétaire et de Microsoft? –

+0

Yup !, c'est le code delphi que j'ai fourni. – Nains

Répondre

1

Êtes-vous capable de charger ceci dans une poignée bitmap Windows standard? Si oui, il y a probablement un tas de bibliothèques gratuites et commerciales pour l'enregistrer au format TIFF.

La norme pour TIFF est libtiff - c'est une bibliothèque C. Voici une version pour Delphi faite par un expert au format TIFF:

http://www.awaresystems.be/imaging/tiff/delphi.html

Il semble y avoir beaucoup de choix.

Je pense que l'approche de

  1. Chargement votre format dans un bitmap standard en mémoire (que vous devez faire pour le montrer, non?)
  2. En utilisant une bibliothèque de codage TIFF pré-existant pour enregistrer en tant que TIFF

Sera beaucoup plus facile que d'essayer de faire une conversion format à format direct. Les seules raisons pour lesquelles je ne le faire de cette façon sont:

  1. Le bitmap est trop grand pour garder en mémoire
  2. Le format original est lossy et je perdrai plus de qualité dans le réencodage - mais vous devez enregistrer dans un format avec perte standard (JPEG) pour économiser la qualité.

Désistement: Je travaille pour Atalasoft.

Nous fabriquons des codecs d'imagerie .NET (y compris TIFF) - qui sont beaucoup plus faciles à utiliser que LibTiff - vous pouvez les appeler en Delphi via COM. Nous pouvons convertir des bitmaps Windows standard en TIFF ou PDF (ou d'autres formats) avec quelques lignes de code.

1

Une approche, si vous avez une application Windows qui gère et peut imprimer ce format, serait de laisser faire le travail pour vous, et l'appeler pour imprimer le fichier à un des nombreux pilotes d'imprimante disponibles qui prennent en charge la sortie directe au format TIFF.

+0

@frogb: Pouvez-vous s'il vous plaît ajouter quelques mots sur cette approche ... En fait, cette image TIFF convertie ne sera pas un résultat final. J'ai besoin de faire les manipulations d'image sur cette image TIFF. – Nains

+0

Je vous suggère de rechercher le pilote d'impression TIFF dans votre moteur de recherche. Désolé, je n'ai aucune suggestion, mais il y a un bon nombre à choisir à des prix allant de la gratuité à la hausse. Nous utilisons un pilote OEM, mais il est seulement livré avec nos applications (et monochome uniquement). Vous en voulez probablement un avec une API où vous pouvez spécifier le nom de fichier de sortie et les paramètres du périphérique. Mais votre succès dépendra aussi de la facilité avec laquelle vous pourrez contrôler votre application pour sélectionner et imprimer le fichier sur une imprimante spécifique. Une fois que vous avez un TIFF, il y a aussi beaucoup de composants logiciels pour le manipuler. – frogb