代码之家  ›  专栏  ›  技术社区  ›  MavidDeyers

C#LibTiff.Net-MultiTIFF更改标记值

  •  0
  • MavidDeyers  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  1
  •   Bobrovsky Jesse DeGuire    7 年前

    黑色图像最可能的原因是图像数据损坏。

    当您更改标签中的某些内容并使用 CheckpointDirectory WriteDirectory ,库在文件中的同一位置写入新数据。如果新目录数据大于旧数据,则下一个映像的某些部分可能会被覆盖(即损坏)。

    在所有情况下避免腐败的唯一方法是 RewriteDirectory .

    创建目录的副本。目录的旧版本保留在文件中。

    推荐文章