从 Tiff/SVS 文件中删除 Page/Layer

Drop a Page/Layer from Tiff/SVS File

有没有简单的方法从 C# 中的 tiff/svs 文件 remove/drop 生成 layer/page/directory?我希望从一系列简单的 tiff/svs 文件中删除特定页面。如果它是 tifFile.dropLayer(0) 之类的东西而不需要将所有内容从内部复制到副本,那就太好了。我已经尝试过 LibTiff 来寻找一个好的解决方案,但这比我希望的要复杂。我尝试使用他们的 UnlinkDirectory() 方法,但图层仍然在事后显示(除非有保存调用或我遗漏的东西。为此,我正在做:

using (Tiff tif = Tiff.Open(fileName, "a"))
{tif.UnlinkDirectory(4);}

我认为它在 Close() 方法上保存和写入,并在 Dispose() 上被调用。我只需要一个简单的开源库或 .NET 中的其他方式来完成此任务。

我找到了解决问题的方法。我使用的是 LibTiff 库的 nuget 包版本。我卸载了它,从 Github 克隆了他们的存储库,将必要的项目从该存储库复制到我的项目中,一切正常。

我仍然使用与上面相同的基本代码,除了我直接在 Tiff 对象上调用 Flush 而不是等待 WriteClose,或 Dispose 方法为我做这件事。在切换源之前,我仍然尝试使用 nuget 版本 Flush

看来问题出在软件包的 nuget 安装损坏或以太中的其他问题上。