Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何指定特定的第3组tiff压缩?_C#_Drawing_Tiff_Imaging - Fatal编程技术网

C# 如何指定特定的第3组tiff压缩?

C# 如何指定特定的第3组tiff压缩?,c#,drawing,tiff,imaging,C#,Drawing,Tiff,Imaging,第3组压缩有2种变体(第3组1D和第3组2D)。以Tiff格式保存图像时,EncoderValue枚举中的组3只有一个选项。是否有单独的参数控制此操作?是。第3组压缩(更准确地说是CCITT T.4)最常用于传真图像。在这种情况下,根据定义,该图像是一个二级(1位)图像,并且需要1D压缩。因此,如果您除了将压缩值(标记259)设置为“2”(对于双层图像)之外不做任何其他操作,那么它将被理解为G3一维(修改的哈夫曼)编码。唯一的其他选项是无压缩(1)和压缩位(32773)。所有三种编码类型都应该得

第3组压缩有2种变体(第3组1D和第3组2D)。以Tiff格式保存图像时,EncoderValue枚举中的组3只有一个选项。是否有单独的参数控制此操作?

是。第3组压缩(更准确地说是CCITT T.4)最常用于传真图像。在这种情况下,根据定义,该图像是一个二级(1位)图像,并且需要1D压缩。因此,如果您除了将压缩值(标记259)设置为“2”(对于双层图像)之外不做任何其他操作,那么它将被理解为G3一维(修改的哈夫曼)编码。唯一的其他选项是无压缩(1)和压缩位(32773)。所有三种编码类型都应该得到基线阅读器的支持,但根据我的经验,许多阅读器都不支持第三组压缩,尤其是G32D

G31D比G32D更容易实现,但效率不如G32D。G31D单独存储每个扫描线,而G32D存储扫描线之间的差异。这可能会使定义图像所需的数据量产生巨大差异,例如大多数图像为空白白纸的典型传真图像

如果您想使用G3二维编码,您必须在标记中更加具体。您必须使用CCITT编码来指示T4压缩编码(CCITT T.4是“组3”编码标准的“真实”名称)。要指示这一点,请设置标记259==3。然后设置T4选项以指定二维编码。与标准压缩(259)标记等简单标记相比,T4选项标记(标记292)有点棘手。它是一个长类型,用作一组32位标志。如果将所有位设置为零,则默认情况下理解一维编码(与不包含此标记没有区别)

对于二维编码,必须将位0(低阶位)设置为1。(如果使用多个条带,每个条带显然必须以一维扫描线开始。)仅当使用未压缩模式时,位1设置为1。位2用于指示是否已使用填充位将EOL保持在字节边界上(如果为真,则设置为1)。所有其他位默认为零

请记住,大多数读者无法理解TIFF中提供的所有选项。它是一种功能极其强大的格式,但这使得在基线TIFF(可能处理90%以上的TIFF图像)之外的实现非常困难。如果您使用的是Group 3二维编码,您可以预期大多数专门支持传真图像和医学图像*的阅读器将正确解码图像。我不希望有比这更多的东西

(TIFF不是标准的医学图像格式,但根据我的经验,支持DICOM图像和TIFF图像的读者通常支持完整的TIFF标准)

这个答案比我想的要长。如果我仍然没有回答你的问题,请在你原来的帖子中澄清,我将编辑我的答案


编辑:您可以在Adobe开发者网站上找到TIFF标准和其他支持文档

我在哪里可以找到标签292(T4选项)中的32位的详细信息?标签292(T4选项)上是否有任何位指示编码器不要将行分散到多个条带中,并将FillOrder设置为1(0x0100)?我有一个双色2347像素(11.50英寸)x1728像素(8.82英寸),需要它的内容只适合每页一条。在将位图对象保存到tiff文件之前,是否可以将标记278(RowsPerStrip)设置为2347(0x2B09),以便编码器在编码过程中使用标记278(RowsPerStrip)中的信息?提前感谢这一切都在TIFF标准中。找到它们最好的地方是Adobe开发者网站。