Надежное преобразование изображений.wmf/wmf в Pixel
Добрый день,
У меня возникли небольшие проблемы с внутренней обработкой.net (System.Drawing) MetaFile / Image для файлов.wmf, которые содержат прозрачные области. В основном всякий раз, когда я делаю MetaFile.LoadFile (...) и принимаю это, чтобы сохранить его как TIFF / PNG и т. Д., Некоторые области этих исходных файлов отсутствуют. Я не могу его точно определить, но, похоже, что векторная информация в метафайле работает нормально, но пиксельные области (например, изображение, помещенное в.wmf) отсутствуют.
Кто-нибудь знает надежный,.net собственный и не сторонний способ для правильного преобразования файлов wmf (как в... окончательном пиксельном изображении выглядит как.wmf.. просто.. хорошо.. пикселированный)?
Ура и спасибо, -J
2 ответа
Хорошо, очевидно наиболее надежный способ преобразовать метафайлы (.wmf/.emf) в другой формат - это использовать.png в качестве выходного формата, так как где-то в метафайлах описания msdn внутренне обрабатываются / преобразуются в формат png в любом случае (с альфа и т. Д.).) и, например, Metafile.Save("somewher"...) по умолчанию будет выводить в png ImageFormat.
Так что, если вы хотите создать изображение не из PNG из входных данных метафайла, вы получите лучший результат, если пройдете лишнюю милю, преобразуете и сохраняете его как png, берете этот png и преобразуете его в свой файл. окончательный формат. В некотором смысле, хромой, но опять же... сам по себе wmf странный, и я пришел к (моему личному) выводу, что это зло.;)
-J
Проблема в том, что.NET - это GDI+, а WMF/EMF - это GDI. Важно знать, что GDI + не совместим с GDI, у них совершенно разные API и возможности. Поэтому некоторые операции в метафайлах GDI ведут себя не так, как ожидалось. Прозрачные растровые изображения, а также преобразования мира в метафайлах и т. Д. Часто не работают так, как рекламирует Microsoft.
Лучшее, что я получил на данный момент, - это преобразование метафайла в собственный GDI+, для чего требуется эмуляция стека GDI и применение некоторых основных настроек для правильного позиционирования текста и т. Д.
Взгляните на EMFExplorer, найденная там информация может помочь. http://www.codeproject.com/KB/GDI-plus/emfexplorer.aspx