Надежное преобразование изображений в формате wmf / wmf в пиксели
-
16-09-2019 - |
Вопрос
Добрый день,
У меня возникли небольшие проблемы с .внутренней обработкой метафайлов / изображений на основе .wmf-файлов net (System.Drawing), содержащих прозрачные области.В принципе, всякий раз, когда я создаю метафайл.LoadFile(...) и сохраняю его в формате tiff / png и т.д., некоторые области этих исходных файлов отсутствуют.Я не могу точно определить это, но кажется, что информация на основе векторов в метафайле работает нормально, но области на основе пикселей (напримеризображение, размещенное в файле .wmf) отсутствуют.
Кто-нибудь знает надежный, собственный для .net и не сторонний способ правильного преобразования wmf-файлов (например, ..конечное пиксельное изображение выглядит как файл .wmf..просто..что ж..неровный)?
Приветствия и благодарность, -J
Решение 2
Хорошо, что, по-видимому, наиболее надежным способом преобразования метафайлов (.wmf /.emf) в другой формат является использование .png в качестве выходного формата, поскольку где-то в описании msdn метафайлы в любом случае внутренне обрабатываются / преобразуются в формат png (с альфа и т.д.) И, напримерметафайл.Сохранить ("где-нибудь" ...) по умолчанию будет выводиться в формате png ImageFormat.
Поэтому, если вы хотите создать изображение не в формате png из входных метафайлов, вы получите наилучший результат, если приложите все усилия, преобразуете и сохраните его в формате png, а затем возьмете этот png и повторно преобразуете его в свой окончательный формат.Немного неубедительно, но опять же..wmf в любом случае сам по себе странный, и я пришел к (моему личному) выводу, что это зло.;)
-Джей
Другие советы
Проблема в том, что .NET - это GDI +, а WMF / EMF - это GDI.Важно знать, что GDI + несовместим с GDI, у них совершенно другие API и возможности.Следовательно, некоторые операции в метафайлах GDI ведут себя не так, как ожидалось.Прозрачные растровые изображения, но также преобразования мира в метафайлах и т.д.часто на самом деле они работают не так, как рекламируется Microsoft.
Лучшее, чего я добился на данный момент, - это преобразовать метафайл в native GDI +, что требует эмуляции стека GDI и применения некоторых основных настроек для позиционирования текста и т.д.верно.
Загляните в EMFExplorer, информация, найденная там, может вам очень помочь.http://www.codeproject.com/KB/GDI-plus/emfexplorer.aspx