.NET обработка файлов TIFF повреждает на XP, но не Win7 - PullRequest
1 голос
/ 10 марта 2011

Мне нужно прочитать некоторые файлы TIFF в WPF, и у меня все это работало хорошо, пока я не протестировал его на Windows XP. Загруженное изображение кажется поврежденным независимо от того, как я его загружаю.

Приложены 2 скриншота одной и той же программы, загружающие одно и то же изображение - темный - как он должен выглядеть (загруженный из Win7), другой - как он выглядит при загрузке в XP.

Я пытался загрузить как BitmapImage, BitmapSource, загрузить FileStream и передать в BitmapImage непосредственно из тега Image в WPF ... все они имеют такой же тип повреждения. Я использовал библиотеку .NET LibTiff, чтобы обойти проблему, но она не объясняет, почему это происходит, и я немного растерялся, чтобы объяснить это!

Редактировать: я должен добавить, что изображение является 16-битным.

Loaded in Windows 7Loaded in XP

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Поддержка Windows для формата TIFF очень слабая в XP и значительно улучшена в Windows 7. 16-битная версия не поддерживается XP (то есть она использует только 8-битную версию) Пожалуйста, посмотрите на http://msdn.microsoft.com/en-us/library/ee720061%28VS.85%29.aspx, чтобы увидеть, что улучшено в Windows 7. Вы также можете увидеть его в виде списка ошибок и ограничений, исправленных в W7 и присутствующих в Windows XP ....

При использовании LibTiff (или LibTiff.NET) вы не будете использовать класс изображений Windows, кроме как для отображения результирующего растрового изображения. Я сделал некоторое отображение диапазона (16-> 8 бит) самостоятельно, используя AForge.NET для визуализации. Я сделал это, реализовав функцию, которая переводила бы плитку из моего tiff-файла (16 бит) в 8-битный BMP, включая улучшение изображения (то есть выравнивание)

1 голос
/ 11 марта 2011

Вы пытались использовать внешнюю библиотеку, такую ​​как LibTiff ?

...