Загрузка CCITT T.6 с классом GDI + Bitmap - PullRequest
3 голосов
/ 01 июня 2011

У меня проблема с тем, что класс Bitmap в C # не загружает правильно файлы TIFT CCITT T.6, он перевернет его так, что высота - это ширина, а ширина - это высота.

Кто-нибудь делал это раньше и знает правильный метод обработки?

Редактировать:

Вот код:

    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

1 Ответ

1 голос
/ 01 июня 2011

TIFF может иметь тег, который определяет его ориентацию данных в строках изображения.Этот тег называется TIFFTAG_ORIENTATION в LibTiff .

Некоторые значения:

  • 1 = 0-я строка представляет визуальную верхнюю часть изображения, а0-й столбец представляет визуальную левую сторону.
  • 5 = 0-й ряд представляет визуальную левую сторону изображения, а 0-й столбец представляет визуальную верхнюю часть.

Согласно этой статье:

Многие читатели игнорируют этот тег.

Я подозреваю, что класс Microsoft .NET Bitmap является одним из этих читателей, и ваши изображения содержат этот тег.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...