【问题标题】:File Format Conversion to TIFF. Some issues?文件格式转换为 TIFF。有些问题?
【发布时间】:2010-04-30 05:48:02
【问题描述】:

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

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

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

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

  2. SNG Data Header 仅使用必要的 Meta Information,因此在将 SNG 转换为 TIFF 时,某些信息无法检索,例如 NewSubFileType、Software Tag 等。

    因此这引发了一个问题,即转换后是否缺少任何目录信息,例如 NewSubFileType、软件标签等,是否是 TIFF 文件的充分必要条件。

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

这里每个像素组件的每个 SNG Image Data Strip 编码为:

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 信息是如何产生的,或者我们是否需要这些信息?

请帮忙...

【问题讨论】:

  • 您提供的像素转换看起来像 sRGB 到灰度。
  • 你可能应该用你碰巧使用的任何编程语言(也许还有操作系统)来标记它。它看起来像是专有的和与 Microsoft 相关的东西?
  • 是的!这是我提供的delphi代码。

标签: delphi format image-manipulation tiff image-conversion


【解决方案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(或其他格式)。

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • @frogb:您能否就这种方法多说几句...实际上,转换后的 TIFF 图像不会成为最终结果。我需要对此 TIFF 图像进行图像处理。
    • 我建议您在搜索引擎中搜索 TIFF 打印驱动程序。抱歉,我没有任何建议,但有很多可供选择,价格从免费以上不等。我们使用 OEM 驱动程序,但它仅与我们的应用程序捆绑在一起(并且仅限于 monochome)。您可能想要一个带有 API 的 API,您可以在其中指定输出文件名和设备设置。但是您的成功还取决于控制您的应用程序选择文件并将其打印到指定打印机的难易程度。有了 TIFF 后,还有很多软件组件可以对其进行操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2011-03-31
    • 2021-07-06
    • 2021-01-28
    • 2011-05-11
    • 2022-12-05
    相关资源
    最近更新 更多