我遇到一个问题,C#中的Bitmap类没有正确加载CCITT T.6 Tiff文件,它会翻转它,所以高度是宽度,宽度是高度。
有没有人以前做过这些并且知道处理它们的正确方法?
编辑:
以下是代码:
Bitmap B = new Bitmap(@"C:\test2.tif");
Debug.WriteLine(B.Width); //returns 1728
Debug.WriteLine(B.Height); //returns 1127
当我在.net图片框中显示它(SizeMode设置为Normal)时,它也显示不正确(拉伸)。但是,如果我用Windows Photo Viewer打开它,它会正确显示。
这些是tiff文件中可用的标签:
SubFileType (1 Long): Page
ImageWidth (1 Long): 1728
ImageLength (1 Long): 1127
BitsPerSample (1 Short): 1
Compression (1 Short): Group 4 Fax (aka CCITT FAX4)
Photometric (1 Short): MinIsWhite
FillOrder (1 Short): Lsb2Msb
StripOffsets (1 Long): 8
SamplesPerPixel (1 Short): 1
RowsPerStrip (1 Long): 1127
StripByteCounts (1 Long): 14764
XResolution (1 Rational): 204
YResolution (1 Rational): 98
Group3Options (1 Long): 5
ResolutionUnit (1 Short): Inch
PageNumber (2 Short): 0, 0
Software (32 ASCII): Windows NT Fax Server
CleanFaxData (1 Short): 0
ConsecutiveBadFaxLines (1 Short): 0
37680 (5632 Undefined):
40003 (26 ASCII): U.S. Robotics 56K FAX EXT
40005 (1 ASCII):
40046 (1 Long): 1
40047 (1 Long): 4
40048 (1 Long): 256
40049 (1 Long): 18
40051 (1 SRational):
40052 (1 SRational):
40053 (1 Long): 2
答案 0 :(得分:1)
TIFF可以有一个标签,用于定义图像行中数据的方向。此标记在 LibTiff 中称为TIFFTAG_ORIENTATION
。
有些值是:
根据这篇文章:
许多读者忽略了这个标签。
我怀疑Microsoft .NET Bitmap
类是这些读者之一,而您的图片包含该标记。