C # LibTiff.Net - MultiTIFF изменить значения тегов - PullRequest
0 голосов
/ 22 сентября 2018

Я хочу установить или изменить некоторые теги в мульти-TIFF-файле с LibTiff.net.Поэтому я в настоящее время переключаюсь через Sub-Images с помощью SetDirectory (), обновляя некоторые поля и проверяя с помощью CheckpointDirectory () - Function.При этом видно только первое изображение в сгенерированном Multi-TIFF-файле, остальные полностью черные.Это даже происходит без изменения какого-либо тега с помощью следующего кода.Какой момент я пропускаю?

Если я установлю функцию CheckoutDirectory вне цикла For, все изображения будут отображаться по желанию, но я хочу изменить теги всех вспомогательных символов, а не только теги последнего.

public static void setRequiredTags(string outputFilePath)
    {
        using (Tiff image_MultiTIFF = Tiff.Open(outputFilePath, "a"))
        {
            for (int i = 0; i < image_MultiTIFF.NumberOfDirectories(); i++)
            { 
                // Load the Next Sub-TIFF
                   image_MultiTIFF.SetDirectory((short)i);  
                // setting custom tag  
                // image_MultiTIFF.SetField(TiffTag.PAGENUMBER, i, image_MultiTIFF.NumberOfDirectories());
                // image_MultiTIFF.SetField(TiffTag.DATETIME, DateTime.Now); 

                // rewrites directory saving new tag
                   image_MultiTIFF.CheckpointDirectory();
            }  
        }
}

1 Ответ

0 голосов
/ 23 сентября 2018

Наиболее вероятной причиной появления черных изображений является повреждение данных изображения.

Когда вы изменяете что-то в тегах и сохраняете изменения, используя CheckpointDirectory или WriteDirectory, библиотека записывает новые данные в том же месте в файле.Если новые данные каталога больше старых данных, некоторая часть следующего изображения может быть перезаписана (т.е. повреждена).

Единственный способ избежать повреждения во всех случаях - это использовать RewriteDirectory.

Обратите внимание, что каждый вызов RewriteDirectory создает копию каталога.Старая версия каталога остается в файле.

...