C# 用GDI&x2B加载CCITT T.6;位图类
我有一个问题,C#中的位图类无法正确加载CCITT T.6 Tiff文件,它会将其翻转,因此高度是宽度,宽度是高度 以前有没有人做过这些,并且知道正确的处理方法 编辑: 代码如下:C# 用GDI&x2B加载CCITT T.6;位图类,c#,bitmap,gdi+,C#,Bitmap,Gdi+,我有一个问题,C#中的位图类无法正确加载CCITT T.6 Tiff文件,它会将其翻转,因此高度是宽度,宽度是高度 以前有没有人做过这些,并且知道正确的处理方法 编辑: 代码如下: Bitmap B = new Bitmap(@"C:\test2.tif"); Debug.WriteLine(B.Width); //returns 1728 Debug.WriteLine(B.Height); //returns 1127 当我在.net图片框中显示它时(SizeMod
Bitmap B = new Bitmap(@"C:\test2.tif");
Debug.WriteLine(B.Width); //returns 1728
Debug.WriteLine(B.Height); //returns 1127
当我在.net图片框中显示它时(SizeMode设置为Normal),它也显示不正确(拉伸)。但如果我用Windows照片查看器打开它,它会正确显示
以下是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
TIFF可以有一个标记,用于定义其在图像行中的数据方向。此标记在LibTiff中称为
TIFFTAG\u方向
一些值是:
- 1=第0行表示图像的可视顶部,第0列表示可视左侧
- 5=第0行表示图像的可视左侧,第0列表示可视顶部
我怀疑Microsoft.NET
位图类是这些阅读器之一,并且您的图像中包含该标记。向我们显示您正在使用的代码。谢谢。这些tiff文件上似乎没有方向标志。他们必须有另一种方法来计算宽度和高度,我不确定,可用的属性是:254、256、257、258、259、262、266、273、277、278、279、282、283、292、296、297、327、328、37680、40001、40002、40003、40005、40046、40047、40048、40049、40051、40052、40053。我曾尝试使用256和257属性(高度和宽度),但它们似乎只返回位图类高度和宽度返回的值(这似乎不正确)。嗨,安德鲁,我对RIGHTFAX图像也有同样的问题。我能找到的唯一提示是,vert/horz的DPI的指定方式不同。问题是,一旦图像被保存,DPI就变得毫无意义。图像显示为压扁。你解决了这个问题吗。我试过使用LibTiff ReadRGBAImageOriented,但也有同样的问题?