Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Aspose.SVG предлагает бесплатный онлайн Векторизатор изображений, работающий в браузере на любой платформе. С помощью этого приложения вы можете настроить параметры для получения идеального результата. Сэкономьте время и оцените преимущества векторной графики с помощью этого бесплатного инструмента!
Векторизация изображений – это процесс преобразования растровых форматов, таких как PNG, JPG, BMP, GIF или TIFF, в масштабируемую векторную графику SVG. В отличие от растровых изображений, файлы SVG сохраняют качество при любом разрешении, их легче редактировать, оптимизировать и масштабировать для веб-дизайна, печати, CAD и графического дизайна.
С помощью Aspose.SVG for .NET вы можете программно векторизовать растровые изображения на C# без использования стороннего графического ПО или браузерных инструментов. API предоставляет гибкие настройки, позволяющие контролировать сглаживание путей, упрощение кривых, уменьшение количества цветов и сложность выходного SVG.
В этой статье показано, как:
Примечание: Пространство имен Aspose.Svg.ImageVectorization поддерживает работу с распространенными форматами (JPG, PNG, BMP, TIFF, GIF) и всегда создает файл SVG.
API векторизации Aspose.SVG предоставляет классы и методы для предварительной обработки изображений перед сохранением. Процесс векторизации позволяет управлять такими параметрами, как TraceSimplifier, TraceSmoother, ColorsLimit и LineWidth.
Давайте рассмотрим, как свойство TraceSimplifier влияет на результат. Прежде всего, важно знать следующее:
tolerance) принимает параметр tolerance (допуск) и инициализирует экземпляр класса.tolerance определяет максимальную погрешность, при которой точка может быть удалена из трассировки. Оно должно быть в диапазоне от 0 до 4. Значение по умолчанию – 0.3.Следующий фрагмент кода демонстрирует использование различных значений свойства tolerance (TraceSimplifier) для преобразования изображения в вектор:
1using System.IO;
2using Aspose.Svg.ImageVectorization;
3using Aspose.Svg.Saving; 1// Compare different SplinePathBuilder configurations for image vectorization with varying simplification levels
2
3// Initialize an instance of the ImageVectorizer class and specify configuration properties
4ImageVectorizer vectorizer1 = new ImageVectorizer
5{
6 Configuration =
7 {
8 PathBuilder = new SplinePathBuilder
9 {
10 TraceSimplifier = new ImageTraceSimplifier(0.1f),
11 TraceSmoother = new ImageTraceSmoother(2),
12 },
13 ColorsLimit = 2
14 }
15};
16
17ImageVectorizer vectorizer2 = new ImageVectorizer
18{
19 Configuration =
20 {
21 PathBuilder = new SplinePathBuilder
22 {
23 TraceSimplifier = new ImageTraceSimplifier(1),
24 TraceSmoother = new ImageTraceSmoother(2),
25 },
26 ColorsLimit = 2
27 }
28};
29
30ImageVectorizer vectorizer3 = new ImageVectorizer
31{
32 Configuration =
33 {
34 PathBuilder = new SplinePathBuilder
35 {
36 TraceSimplifier = new ImageTraceSimplifier(2),
37 TraceSmoother = new ImageTraceSmoother(2),
38 },
39 ColorsLimit = 2
40 }
41};
42
43// Prepare a path for a source image file
44string sourcePath = Path.Combine(DataDir, "formats.png");
45
46// Vectorize raster image from the specified file
47using SVGDocument document1 = vectorizer1.Vectorize(sourcePath);
48using SVGDocument document2 = vectorizer2.Vectorize(sourcePath);
49using SVGDocument document3 = vectorizer3.Vectorize(sourcePath);
50
51// Save the vectorized image as an SVG file
52document1.Save(Path.Combine(OutputDir, "formats1.svg"));
53document2.Save(Path.Combine(OutputDir, "formats2.svg"));
54document3.Save(Path.Combine(OutputDir, "formats3.svg"));
Иногда фрагменты контуров выглядят зубчатыми или напоминают пилообразные волны. Давайте посмотрим, как свойство TraceSmoother влияет на сглаживание:
severity) принимает параметр severity (интенсивность).severity определяет размер области, учитываемой при сглаживании точки. Оно должно быть в диапазоне от 0 до 20.Посмотрим, как TraceSmoother влияет на результат:
1using System.IO;
2using Aspose.Svg.ImageVectorization;
3using Aspose.Svg.Saving; 1// Vectorize PNG to SVG using ImageVectorizer and custom parameters
2
3// Initialize an instance of the ImageVectorizer class
4ImageVectorizer vectorizer = new ImageVectorizer
5{
6 // Optionally set a configuration
7 Configuration =
8 {
9 // Optionally create an instance of the PathBuilder class
10 PathBuilder = new BezierPathBuilder {
11 // Optionally set trace smoother
12 TraceSmoother = new ImageTraceSmoother(0),
13 ErrorThreshold = 30,
14 MaxIterations = 30
15 },
16 ColorsLimit = 10,
17 LineWidth = 1
18 }
19};
20// Vectorize image from the specified file
21using SVGDocument document = vectorizer.Vectorize(Path.Combine(DataDir, "flower.png"));
22
23// Save vectorized Image as an SVG file
24document.Save(Path.Combine(OutputDir, "flower.svg"));
Можно ли преобразовать фотографию в векторный формат так, чтобы она выглядела идентично оригиналу?
Формат SVG не предназначен для фотореалистичных изображений, так как он пока не поддерживает идеально естественные цветовые переходы. Векторная графика лучше всего подходит для логотипов, иконок и технических чертежей. Однако векторизация фотографий может создавать интересные художественные эффекты.
В этом разделе мы попробуем подобрать параметры векторизации так, чтобы результат был максимально приближен к фото:
1using System.IO;
2using Aspose.Svg.ImageVectorization;
3using Aspose.Svg.Saving; 1// Convert JPG to SVG in C#
2
3// Initialize an instance of the ImageVectorizer class
4ImageVectorizer vectorizer = new ImageVectorizer
5{
6 // Optionally set a configuration
7 Configuration =
8 {
9 // Optionally create an instance of the PathBuilder class
10 PathBuilder = new SplinePathBuilder
11 {
12 TraceSmoother = new ImageTraceSmoother(1),
13 TraceSimplifier = new ImageTraceSimplifier(0.3f)
14 },
15 ColorsLimit = 25,
16 LineWidth = 1
17 }
18};
19
20// Vectorize image from a specified file
21using (SVGDocument document = vectorizer.Vectorize(Path.Combine(DataDir, "horses.jpg")))
22{
23 // Save the vectorized image as SVG
24 document.Save(Path.Combine(OutputDir, "horses-new.svg"));
25}На рисунке показаны: исходное фото (a), векторизованное изображение с использованием кода выше (b) и улучшенная вручную версия (c).

В процессе векторизации используется квантование цветов. Мелкие области заменяются геометрическими фигурами, из-за чего между ними могут появляться крошечные зазоры. Это причина появления белых точек на изображении.
Совет: Чтобы исправить эту проблему, вы можете вручную отредактировать полученный SVG-файл. Мы рекомендуем изменить значение stroke-width="100" на "150" или другое подходящее.

Исходное фото (a) и итоговый SVG (c) можно изучить детально по ссылкам: horses.jpg, horses.svg.
Aspose.SVG for .NET предоставляет множество опций для контроля качества SVG, гладкости путей и сложности вывода.
| Опция | Описание | Рекомендации |
|---|---|---|
ColorsLimit | Максимальное количество цветов при квантовании. Низкие значения упрощают структуру, высокие – сохраняют детали. | Для логотипов – низкие значения; для иллюстраций и фото – высокие. |
ImageSizeLimit | Максимальный размер изображения (ширина × высота). Большие изображения могут масштабироваться перед обработкой. | Увеличьте для исходников высокого разрешения. |
PathBuilder | Алгоритм генерации путей SVG. Влияет на плавность кривых. | Используйте SplinePathBuilder или BezierPathBuilder для гладких линий. |
TraceSimplifier | Уменьшает количество точек и упрощает геометрию путей. | Помогает уменьшить размер файла и оптимизировать сложность. |
TraceSmoother | Сглаживает фрагменты контуров и убирает зазубрины. | Рекомендуется для шумных или низкокачественных растровых исходников. |
LineWidth | Толщина генерируемых векторных штрихов. | Увеличьте, если тонкие контуры исчезают при векторизации. |
Бесплатная ознакомительная версия Aspose.SVG предоставляет все функции векторизации, кроме следующих:
Чтобы протестировать API без ограничений, запросите 30-дневную временную лицензию.

Итоговый файл: horses-license.svg.
| Проблема | Возможная причина | Рекомендуемое решение |
|---|---|---|
| В SVG много зазоров или разрозненных фигур | Слишком низкий ColorsLimit. | Увеличьте ColorsLimit (например, до 30–40) или немного увеличьте stroke-width. |
| Слишком большой размер SVG-файла | Слишком низкий допуск TraceSimplifier. | Увеличьте значение допуска (обычно 0.7–1.0) для уменьшения количества точек. |
| Края выглядят грубыми или зубчатыми | TraceSmoother отключен или настроен слишком слабо. | Примените значения сглаживания в диапазоне 5–10. |
| В итоговом SVG отсутствуют некоторые цвета | Оценочная версия ограничивает количество обрабатываемых доминирующих цветов. | Примените временную или полную лицензию Aspose.SVG, чтобы включить поддержку полноцветной векторизации. |
| SVG содержит слишком много лишних путей | Исходное изображение содержит шум, градиенты или артефакты сжатия. | Предварительно обработайте изображение перед векторизацией: уменьшите шум, увеличьте контрастность или используйте более простые исходные изображения. |
| Векторизация фотографий дает неточный результат | Трассировка растра в вектор лучше всего подходит для логотипов, иконок и иллюстраций, а не для детальных фотографий. | Уменьшите количество цветов, увеличьте сглаживание или используйте стилизованные изображения вместо фотореалистичных. |
| Исчезают тонкие линии | Слишком агрессивное упрощение. | Уменьшите допуск упрощения и увеличьте ColorsLimit. |
1. Как конвертировать PNG в SVG на C#?
Используйте класс ImageVectorizer в Aspose.SVG for .NET. Он поддерживает гибкие настройки сглаживания, упрощения и квантования цветов.
2. В чем разница между растровыми и векторными изображениями?
Растр состоит из пикселей и теряет качество при масштабировании. Вектор использует математические пути, что позволяет масштабировать его бесконечно без потери четкости.
3. Как уменьшить размер SVG после векторизации?
Увеличьте допуск в TraceSimplifier, уменьшите количество цветов (ColorsLimit) и используйте настройки сглаживания путей.
4. Какие изображения лучше всего подходят для векторизации?
Логотипы, иконки и контурные рисунки с четкими краями и ограниченным набором цветов.
5. Можно ли настроить процесс векторизации?
Да, API позволяет детально настраивать лимиты цветов, размеры, типы построителей путей и параметры сглаживания.
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.