我有一个专有的图像格式SNG(一种专有格式),它在单独的HDR文件中有一个图像数据的连续数组以及图像元信息。
现在我需要将此SNG格式转换为标准TIFF 6.0格式。所以我研究了TIFF格式,即关于它的标题,图像文件目录(IFD)和剥离图像数据。
现在我对这种转换几乎没有任何担忧。请帮助我。
SNG连续数据与TIFF剥离数据:我应该将SNG数据转换为TIFF作为一个Strip中的连续数据(数据加载/编辑时间问题?)或者制作SNG图像数据的逻辑StripOffsets。
SNG Data Header仅使用必要的元信息,因此在将SNG转换为TIFF时,无法检索某些信息,如NewSubFileType,Software Tag等。
因此,这引起了一个问题,即转换后是否需要任何丢失的目录信息,如NewSubFileType,Software Tag等,以及TIFF文件的充分条件。
SNG数据中RGB样本的每个像素分量的编码:
此处每个像素组件的每个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信息的担忧,或者我们更需要这些信息?
请协助......
答案 0 :(得分:1)
一种方法,如果你有一个处理并可以打印这种格式的Windows应用程序,那就是让它为你完成工作,然后调用它将文件打印到许多支持的“打印机驱动程序”之一直接输出到TIFF。
答案 1 :(得分:1)
您是否可以将其加载到标准的Windows位图句柄中?如果是这样,可能有一堆免费和商业库将其保存为TIFF。
TIFF的标准是libtiff - 它是一个C库。以下是由TIFF格式的专家制作的Delphi版本:
http://www.awaresystems.be/imaging/tiff/delphi.html
似乎有很多选择。
我认为
的方法比尝试直接格式化格式转换要容易得多。我不这样做的唯一原因是:
免责声明:我为Atalasoft工作。
我们制作.NET成像编解码器(包括TIFF) - 比LibTiff更容易使用 - 您可以通过COM在Delphi中调用它们。我们可以使用几行代码将标准窗口位图转换为TIFF或PDF(或其他格式)。