Надежное преобразование изображений .wmf / wmf в пиксельное.

Добрый день,

У меня возникли небольшие проблемы с обработкой MetaFile / Image на основе внутренней (System.Drawing) .NET файлов .wmf, содержащих прозрачные области. Обычно, когда я использую MetaFile.LoadFile (...) и сохраняю его как tiff / png и т. Д., Некоторые области этих исходных файлов отсутствуют. Я не могу точно определить это, но похоже, что векторная информация в метафайле работает нормально, но пиксельные области (например, изображение, помещенное в .wmf) отсутствуют.

Кто-нибудь знает надежный, родной .net и сторонний способ конвертировать файлы wmf должным образом (как в .. окончательное изображение на основе пикселей выглядит как .wmf .. просто .. ну .. пиксельное)?

Приветствую и спасибо, -J


person Jörg Battermann    schedule 24.04.2009    source источник


Ответы (2)


Проблема в том, что .NET - это GDI +, а WMF / EMF - это GDI. Важно знать, что GDI + несовместим с GDI, у них совершенно другие API и возможности. Поэтому некоторые операции в метафайлах GDI работают не так, как ожидалось. Прозрачные растровые изображения, а также преобразования мира в метафайлы и т. Д. Часто не работают так, как рекламируется Microsoft.

Лучшее, что я получил до сих пор, - это преобразовать метафайл в собственный GDI +, что требует эмуляции стека GDI и применения некоторых основных настроек для правильного позиционирования текста и т. Д.

Взгляните на EMFExplorer, информация, найденная там, может очень помочь. http://www.codeproject.com/KB/GDI-plus/emfexplorer.aspx

person Lucero    schedule 24.04.2009

Хорошо, по-видимому, наиболее надежный способ преобразования метафайлов (.wmf / .emf) в другой формат - использовать .png в качестве выходного формата, поскольку где-то в описании msdn метафайлы внутренне обрабатываются / преобразуются в формат png (с альфа-каналом и т. Д. ) и например a Metafile.Save ("somewher" ...) по умолчанию будет выводиться в формате PNG ImageFormat.

Так что, если вы действительно хотите создать изображение не в формате png из ввода метафайла, вы получите лучший результат, если приложите дополнительные усилия, преобразуете и сохраните его как png, а затем возьмете этот png и повторно преобразуете его в свой окончательный формат. Вроде хромает, но опять же ... WMF сам по себе странный, и я пришел к (моему личному) выводу, что это зло. ;)

-J

person Jörg Battermann    schedule 27.04.2009