Векторизация растровых изображений

Вы готовы перейти от пиксельного изображения к векторному?

Что такое векторизация изображения?

Векторизация изображений – это процесс преобразования стандартных растровых изображений в математически масштабируемую векторную графику: кривые Безье, сплайны и линии. Основное преимущество векторизации заключается в том, что ваши изображения никогда не будут пикселизироваться при увеличении. Масштабирование без потери качества, компактные размеры файлов и поддержка анимации – лишь некоторые преимущества использования векторной графики. С помощью Aspose.SVG for .NET API можно реализовать высокоскоростной процесс векторизации в C#, обеспечивающий полный контроль над трассировкой растровых изображений и их преобразованием в файлы SVG.


Онлайн Векторизатор изображений

Интерактивный Векторизатор изображений позволяет мгновенно преобразовывать растровые изображения в векторную графику. Он создает точные геометрические фигуры, состоящие из кривых Безье и линий, сохраняя все элементы в файл SVG. Инструмент поддерживает стандартные растровые форматы, включая JPEG, PNG, BMP, ICO, GIF, TIFF и WEBP. Вы можете протестировать различные варианты векторизации, такие как ограничение цветов и сглаживание, прямо в браузере перед загрузкой готовой графики.


Как использовать Векторизатор Изображений?

  1. Загрузите исходное растровое изображение из локальной файловой системы. Интерфейс отображает три панели: Source Image, Quantized Image и Vectorized Image.
  2. Движок обрабатывает Image с параметрами по умолчанию. Для оптимизации SVG-вывода используйте боковые панели для настройки параметров квантования и векторизации. Нажмите Quantize для предварительного просмотра уменьшения палитры, затем Vectorize для отрисовки SVG-путей.
  3. Нажмите Download, чтобы сохранить сгенерированный векторный файл.

Параметры квантования (Quantization Options)

Настройте эти параметры, чтобы управлять тем, как алгоритм группирует пиксели и уменьшает исходную цветовую палитру:

  • colors – задает точное ограничение максимального размера палитры.
  • method – переключение между алгоритмами квантования цвета на основе гистограммы.
  • minHueCols – управляет пороговыми значениями чувствительности при обработке цветовых градиентов.
  • scale – регулирует коэффициент масштабирования для более точной или грубой выборки цветов.
  • grayscale – принудительно переводит вывод в монохромные границы.

Параметры векторизации (Vectorization Options)

Управляет поведением геометрической трассировки, применяемой к квантованной карте:

  • threshold – определяет ограничение чувствительности пикселей для обнаружения граничных контуров.
  • severity – изменяет сглаживание контуров с использованием пространственного размера ближайшего соседа.
  • line-width – определяет толщину штриха, назначаемую генерируемым SVG-линиям.
  • stencil – применяет двоичную маску контура, идеальную для преобразования фотографий с непрерывными тонами в трафаретные силуэты.
  • trace paths – переключает визуальный рендеринг контрольных точек кривых Безье и сплайнов, используемых для построения сегментов.

Как векторизовать изображение на C#

Aspose.SVG for .NET API предоставляет пространство имен ImageVectorization , которое берет на себя основные задачи по преобразованию изображений в векторы. С помощью этих классов можно контролировать параметры предварительной обработки, такие как настройка ColorsLimit для упрощения изображения или применение TraceSmoother внутри PathBuilder для устранения неровностей пиксельных границ перед сохранением в векторном формате.


Векторизация изображений на C#

    // Initialize an instance of the ImageVectorizer class
    ImageVectorizer vectorizer = new ImageVectorizer
    {
        // Optionally set a configuration and specify configuration properties
        Configuration =
        {
            // Optionally create an instance of the PathBuilder class
            PathBuilder = new BezierPathBuilder 
            {
                // Optionally set trace smoother
                TraceSmoother = new ImageTraceSmoother(1),
                ErrorThreshold = 30,
                MaxIterations = 30
            },
            ColorsLimit = 25,
            LineWidth = 1
        }
    };
    
    // Vectorize image from the specified file
    using (SVGDocument document = vectorizer.Vectorize(Path.Combine(DataDir, "image.png")))
    {
        // Save vectorized image as SVG file
        document.Save(Path.Combine(OutputDir, "image.svg"));
    }

Шаги векторизации изображения на C#

Преобразование растрового изображения в масштабируемую векторную модель на C# включает три основных шага:

  1. Инициализируйте экземпляр класса ImageVectorizer и настройте свойства Configuration .
    • Используйте ColorsLimit для определения максимального количества цветов трассировки, чтобы оптимизировать размер изображения.
    • Назначьте BezierPathBuilder для построения плавных кривых на основе пиксельных контуров.
    • Примените ImageTraceSmoother для аккуратного сглаживания резких или неровных краев.
  2. Вызовите метод Vectorize() , передав путь к исходному изображению, для создания SVGDocument.
  3. Сохраните полученное векторное изображение в файловую систему с помощью метода Save() .

Векторизация изображений в документации

Масштабируемая векторная графика (SVG) является стандартом для рендеринга высококачественной веб-графики, так как позволяет сохранять четкость при любых размерах экрана. Чтобы понять, как работает этот процесс, изучите руководство Векторизация – базовый обзор .

  • Image Vectorization Workflow – содержит подробное описание опций векторизации и процесса трассировки растровых изображений в документы SVG.
  • Image Vectorization Examples – примеры на C#, демонстрирующие влияние настроек конфигурации на финальный результат векторизации.

FAQ

1. Как программно векторизовать изображения Image на C#?

Вы можете использовать класс ImageVectorizer в Aspose.SVG для синтаксического анализа и преобразования растров Image в контуры SVG. API для .NET предоставляет прямой доступ к алгоритмам квантования, построителям путей и параметрам сглаживания, выполняя преобразование независимо от стороннего графического программного обеспечения.

2. Что происходит в процессе преобразования растра в вектор?

Векторизация анализирует плоский двухмерный массив пикселей исходного растрового изображения и реконструирует его визуальные данные в виде математических линий, кривых Безье и геометрических фигур. Это преобразует растровые файлы, жестко зависящие от разрешения, в универсально масштабируемые векторные элементы.

3. Зачем внедрять векторизацию изображений в .NET-приложения?

Векторизация растровых ресурсов, таких как логотипы, чертежи и технические диаграммы, обеспечивает бесконечное масштабирование без потери качества. За счет автоматизации этого процесса разработчики получают возможность динамически генерировать адаптивные элементы пользовательского интерфейса или графику, готовую к печати и независимую от исходного разрешения, прямо на своей серверной инфраструктуре.

4. Как работает алгоритм векторизации изображений?

Сначала алгоритм векторизации применяет цветовую квантизацию для группировки схожих пикселей и снижения визуального шума. Затем функции трассировки контуров выявляют граничные области и строят геометрические фигуры на основе непрерывных кластеров пикселей. В завершение эти границы математически преобразуются в стандартные элементы SVG <path> с использованием узлов сплайнов и кривых Безье.

Начало работы с Aspose.SVG for .NET API

Установите из командной строки nuget install Aspose.SVG или через консоль диспетчера пакетов Visual Studio с помощью Install-Package Aspose.SVG. В качестве альтернативы можно получить автономный установщик MSI или DLL-файлы в ZIP-файле из загрузки. Aspose.SVG for .NET API является автономной библиотекой и не зависит от какого-либо программного обеспечения для обработки документов SVG. Дополнительные сведения об установке библиотеки C# и системных требованиях вы найдете в документации Aspose.SVG.

Другие поддерживаемые векторизаторы

Ознакомьтесь с другими Векторизаторами изображений, чтобы оценить все преимущества векторной графики!

Text to Vector (SVG Text)
Stencil Drawing (Stencil images)
JPG to SVG (JPEG Image)
PNG to SVG (Portable Network Graphics)
Image to SVG (Raster Image)
BMP to SVG (Microsoft Windows Bitmap)
GIF to SVG (Graphical Interchange Format)
TIFF to SVG (Tagged Image File Format)