【问题标题】:Loading CCITT T.6 with GDI+ Bitmap class使用 GDI+ 位图类加载 CCITT T.6
【发布时间】:2011-09-05 21:27:06
【问题描述】:

我有一个问题,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 照片查看器打开它,它会正确显示。

这些是 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

【问题讨论】:

  • 向我们展示您正在使用的代码。

标签: c# bitmap gdi+


【解决方案1】:

TIFF 可以有一个标签,用于定义图像行中数据的方向。此标签在 LibTiff 中称为 TIFFTAG_ORIENTATION

一些值是:

  • 1 = 第 0 行代表图像的可视顶部,第 0 列代表可视左侧。
  • 5 = 第 0 行代表图像的视觉左侧,第 0 列代表视觉顶部。

根据这篇文章:

许多读者忽略了这个标签。

我怀疑 Microsoft .NET Bitmap 类是这些阅读器之一,并且您的图像包含该标签。

【讨论】:

  • 谢谢。这些 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 属性(高度和宽度)只返回 Bitmap 类 Height 和 Width 返回的内容(这似乎不正确)。
  • 嗨 Andrew,我在使用 RIGHTFAX 图像时遇到了同样的问题。我能找到的唯一提示是垂直/水平的 DPI 指定不同。问题是一旦图像被保存,DPI 就毫无意义了。图像被压扁显示。你有没有设法解决这个问题。我试过使用 LibTiff ReadRGBAImageOriented 并且那里也有同样的问题?
猜你喜欢
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
  • 2014-09-03
  • 2011-06-01
  • 1970-01-01
相关资源
最近更新 更多