Tiff chargé de Stream via LibTiff.Net n'a pas les valeurs de champ
-
23-10-2019 - |
Question
Mon application doit gérer les fichiers TIFF qui sont stockés dans un MemoryStream, mais LibTiff.Net retourne toujours null
pour les valeurs de champ.
MemoryStream ms = new MemoryStream();
FileStream fs = new FileStream("testfile.tif", FileMode.Open);
fs.CopyTo(ms);
//It seems (memory) streams have to be opened in write mode, "r" always returns <null>
Tiff tiff = Tiff.ClientOpen("someArbitraryName", "w", ms, new TiffStream());
FieldValue[] imageHeight = tif.GetField(TiffTag.IMAGELENGTH);
Ouverture du fichier directement pour la lecture à l'aide Tiff.Open
fonctionne très bien.
Est-ce un bogue dans la bibliothèque LibTiff.Net ou suis-je manque quelque chose?
La solution
Bit équipe de soutien Miracle m'a fourni la solution:
Tiff.ClientOpen
lit les données de la position actuelle du flux.
MemoryStream ms = new MemoryStream();
FileStream fs = new FileStream("testfile.tif", FileMode.Open);
fs.CopyTo(ms);
ms.Position = 0;
Tiff tiff = Tiff.ClientOpen("someArbitraryName", "r", ms, new TiffStream());
FieldValue[] imageHeight = tif.GetField(TiffTag.IMAGELENGTH);
résout le problème.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow