首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用LibTiff.Net副本目录更新现有镜像中的标签

使用LibTiff.Net副本目录更新现有镜像中的标签
EN

Stack Overflow用户
提问于 2013-02-17 15:53:07
回答 2查看 1.2K关注 0票数 3

我正在尝试更改现有TIFF图像中的一些自定义ASCII标记的值,如http://bitmiracle.com/libtiff/help/add-custom-tiff-tags-to-an-existing-tiff-image.aspx上的示例所示。

这些更改本质上涉及到添加到现有标记的字符串中,或者添加不存在的自定义标记。

然而,当添加新标签时,LibTiff似乎在图像的末尾添加了一个全新的目录,而不是更改现有的目录,这是老生常谈的。我已经用WinHex验证了这一点,并尝试了几种不同的方法,如WriteDirectory、CheckpointDirectory。正在打开该文件以进行追加。

复制目录导致我们无法控制的另一个程序出现问题,该程序必须处理图像。

有没有办法只更新现有的目录?或者,如果有必要重写整个文件,我能得到一些关于如何做到这一点的指导吗?如果文件被重写,则需要保留其他自定义标记。

EN

回答 2

Stack Overflow用户

发布于 2013-02-17 20:29:56

如果您向现有目录添加新标签或更改一些现有标签,则最好用新目录替换现有目录。否则,您的标记可能会覆盖栅格数据(因为更新后的目录需要比旧目录更多的空间)。

因此,假设如果程序不能正确处理具有更新目录链的文件,则需要重写整个文件,这是正确的。

您可能希望查看该库附带的TiffCP实用程序的源代码。源代码应该会给你提供足够的线索来开始。该实用程序重新压缩文件中的数据,但您可能不需要这样做。您可以只使用ReadRawStripWriteRawStrip方法复制压缩数据。该实用程序还会复制所有标记。这是你在代码中绝对需要做的事情(同时改变/添加标签)。

票数 1
EN

Stack Overflow用户

发布于 2016-10-20 09:31:27

根据libbit.net文档:Tiff.Open Method

只支持"r“"w”"a“模式,外加一些次要模式,没有像fopen中那样的"r+”来支持对tiff的读写。

本机libtiff库有一个实用程序,可用于更改指定的tiff标记:

tiffset -s XResolution 400 test.tif

可以使用tiffinfo test.tif来验证结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14919072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档