2

我有一个专有的图像格式 SNG(一种专有格式),它在单独的 HDR 文件中具有一系列图像数据以及图像元信息。

现在我需要将此 SNG 格式转换为标准 TIFF 6.0 格式。所以我研究了 TIFF 格式,即关于它的标题、图像文件目录(IFD)和剥离的图像数据。

现在我对这种转换几乎没有什么顾虑。请帮助我。

  1. SNG 连续数据与 TIFF 剥离数据:我应该将 SNG 数据转换为 TIFF 作为一个带中的连续数据(数据加载/编辑时间问题?)还是对 SNG 图像数据进行逻辑 StripOffsets。

  2. SNG 数据头仅使用必要的元信息,因此在将 SNG 转换为 TIFF 时,某些信息无法检索,例如 NewSubFileType、软件标签等。

    所以这引起了一个问题,在转换之后是否缺少任何目录信息,如 NewSubFileType、软件标签等,是否是 TIFF 文件的充分必要条件。

  3. SNG数据中RGB Sample的每个像素分量的编码:

这里每个像素组件的每个 SNG 图像数据条被编码为:

Out^[i] := round( LineBuffer^[i * 3] * **0.072169**  +  LineBuffer^[i * 3 + 1] * **0.715160** + LineBuffer^[i * 3+ 2]* **0.212671**); 

我从中推断出的唯一方法是每个像素用 3 个 RGB 分量表示,并且将一些系数与每个分量相乘,以使 SNG Viewer 工作 SNG 图像数据的 RGB 颜色信息。(之前在这方面工作的开发人员离开了,现在我正在跟踪:))

因此,在将其转换为 TIFF 时,需要进行相同的解码。这引发了一个担忧,即 TIFF 中的 RBG 信息是如何产生的,或者我们是否需要这些信息更好?

请协助...

4

2 回答 2

1

一种方法是,如果您有一个处理并可以打印此格式的 Windows 应用程序,则让它为您完成工作,并调用它来将文件打印到支持直接输出的众多可用“打印机驱动程序”之一国际电影节。

于 2010-04-30T08:47:01.740 回答
1

你能把它加载到标准的 Windows 位图句柄中吗?如果是这样,可能有很多免费和商业库可以将其保存为 TIFF。

TIFF 的标​​准是 libtiff——它是一个 C 库。这是由专家以 TIFF 格式制作的 Delphi 版本:

http://www.awaresystems.be/imaging/tiff/delphi.html

似乎有很多选择。

我认为的方法

  1. 将您的格式加载到内存中的标准位图中(您需要这样做才能显示它,对吗?)
  2. 使用预先存在的 TIFF 编码库保存为 TIFF

比尝试直接进行格式到格式的转换要容易得多。我不会这样做的唯一原因是:

  1. 位图太大而无法保存在内存中
  2. 原始格式是有损的,我会在重新编码时失去更多的质量——但你必须以标准的有损格式 (JPEG) 保存以保存质量。

免责声明:我为Atalasoft工作。

我们制作 .NET 图像编解码器(包括 TIFF)——这比 LibTiff 更容易使用——您可以通过 COM 在 Delphi 中调用它们。我们可以使用几行代码将标准 Windows 位图转换为 TIFF 或 PDF(或其他格式)。

于 2010-04-30T12:44:48.177 回答