Я программист Windows, который должен конвертировать определенный SVG в EMF, чтобы использовать его для программирования.
Мои навыки графического дизайна находятся на начальном уровне, но мне удалось успешно конвертировать файл SVG в EMF с помощью Inkscape. Однако результат не выглядит оригинальным, он, так сказать, менее «точен». Если я экспортирую SVG как PNG, результат будет таким же, как и у исходного файла. К сожалению, мне нужен векторный формат, который распознает Windows, и это только EMF (я использую чистый WinAPI и C ++, поэтому это ограничение ...).
Чтобы точно понять, что я имею в виду, ссылка на оригинальный SVG, а также EMF и PNG, которые я сделал, находится здесь . Просто нажмите на Download: test.rar над 5 желтыми звездами (см. Рисунок ниже).
Похоже, проблема заключается в размерах файла EMF (он должен быть 90 x 120), так как изображение становится кристально чистым, когда я изменяю размер приложения до больших размеров.
Я прошу вашей помощи, чтобы получить то же графическое качество файла EMF, что и оригинальный SVG.
Чтобы еще больше помочь вам в ваших усилиях по решению моей проблемы, вот небольшое приложение, которое будет отображать ЭДС в окне. Просто сохраните EMF в том же месте, где находится приложение, и назовите EMF как test.emf
.
Спасибо за ваше время и усилия. С уважением.
Ответы:
Я сделаю сравнение с вашей тестовой графикой:
Это файл PNG, который вы предоставляете, так что это, вероятно, желаемый результат:
Выход вашего кода, ок. в том же размере:
Предоставляемый вами файл EMF отображается в IrfanView (снова примерно того же размера)
То же, что и 3., но с
View -> Display Options -> Use Resample
включенным:Заключение
Так как 4. выглядит как 1. (то есть желаемый результат), я пришел к выводу, что преобразование в формат EMF совершенно нормально, но ваш код масштабирует графику с помощью простого, возможно, пиксельного алгоритма. Так что ИМХО вам нужно реализовать, например, процедуру билинейной интерполяции .
источник
При просмотре с помощью Photoshop у EMF нет добавленного фрейма, поэтому это проблема для зрителя.
Я не могу загрузить вашу программу просмотра по какой-то непонятной причине. Я использовал Free WMF Viewer для просмотра вашей картинки EMF,
Файл EMF выглядит идеально - он отлично масштабируется вверх и вниз, как и изображение векторной графики. Но этот зритель также показывает черную рамку вокруг изображения.
Я также просмотрел вашу EMF, используя старый просмотрщик wmf / emf, который я когда-то написал, который также не показывает черную рамку. Я отмечаю, что в моем собственном средстве просмотра я использовал ограничивающий прямоугольник только для определения соотношения сторон изображения (высота и ширина), чтобы правильно отображать его, то есть не сжимать и не растягивать.
Мой вывод заключается в том, что оба зрителя отображают ограничивающий прямоугольник в виде рамки. Это неверно, поскольку его целью является предоставление информации о рекомендованном прямоугольнике просмотра изображения, а не его отображение. Таким образом, ваш процесс генерации ЭДС кажется правильным.
источник