Векторизація зображень – код C# та онлайн-векторизатор
Готові перейти на векторну графіку?
Що таке векторизація зображень?
Векторизація зображень – це процес перетворення стандартних растрових зображень на математично масштабовану векторну графіку, що складається з кривих Безьє, сплайнів та прямих ліній. Основна перевага векторизації полягає в тому, що зображення не розпадається на пікселі при збільшенні. Масштабування без втрати якості, разюче менший розмір файлів та підтримка плавних анімацій – це лише деякі з переваг роботи з векторною графікою. Aspose.SVG for .NET API дозволяє реалізувати високошвидкісний процес векторизації на C#, надаючи повний контроль над тим, як растрове зображення трасується та перетворюється на чистий SVG-файл.
Онлайн-векторизатор зображень
Наш інтерактивний векторизатор зображень розроблений для миттєвого перетворення растрових зображень на векторну графіку. Він створює точні геометричні фігури, що складаються з кривих Безьє та ліній, і зберігає всі згенеровані елементи у чистому SVG-файлі. Інструмент підтримує майже всі стандартні растрові формати, включаючи JPEG, PNG, BMP, ICO, GIF, TIFF та WEBP. Ви можете легко протестувати різні параметри векторизації, такі як обмеження кольорів та згладжування ліній, безпосередньо у браузері перед завантаженням фінальної векторної графіки!
Як використовувати Image Vectorizer?
- Завантажте вихідне растрове зображення з локальної файлової системи. Інтерфейс відображає три панелі: Source Image, Quantized Image і Vectorized Image.
- Рушій обробляє
Imageз параметрами за замовчуванням. Для оптимізації SVG-виводу використовуйте бічні панелі для налаштування параметрів квантування та векторизації. Натисніть Quantize для попереднього перегляду зменшення палітри, а потім Vectorize для відтворення SVG-шляхів. - Натисніть 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# потребує трьох простих кроків:
- Ініціалізуйте екземпляр класу
ImageVectorizer
та налаштуйте його властивості
Configuration
.
- Використовуйте
ColorsLimit, щоб визначити максимальну кількість кольорів для трасування та оптимізації розміру зображення. - Підключіть BezierPathBuilder для точної побудови плавних кривих з піксельних контурів.
- Застосуйте ImageTraceSmoother , щоб чисто згладити грубі або нерівні краї.
- Використовуйте
- Викличте метод
Vectorize()
, передавши шлях до вихідного зображення для створення об’єкта
SVGDocument. - Збережіть отримане векторне зображення у файлову систему за допомогою стандартного методу Save() .
Векторизація зображень у документації
Scalable Vector Graphics (SVG) наразі є стандартом для візуалізації високоякісної веб-графіки, оскільки вони створюють чіткі зображення, які масштабуються до будь-якого розміру без втрати якості. Щоб опанувати роботу цього перетворення, ознайомтеся з нашим посібником
Vectorization – Basic Overview
.
- Image Vectorization Workflow – надає чіткий опис параметрів векторизації, показуючи, як саме трасувати растрові зображення у стандартні SVG-документи.
- Image Vectorization Examples – перегляньте реальні приклади на C#, які демонструють, як налаштування конфігурації безпосередньо впливає на фінальний векторний результат.
FAQ
Ви можете використовувати клас ImageVectorizer в Aspose.SVG для розбору та перетворення растрових зображень Image у контури SVG. API для .NET надає прямий доступ до алгоритмів квантування, побудовників контурів та налаштувань згладжування, виконуючи перетворення незалежно від зовнішнього графічного програмного забезпечення.
Векторизація аналізує плоский 2D-масив пікселів вихідного растрового зображення та реконструює його візуальні дані у математичні лінії, криві Безьє та геометричні фігури. Це перетворює растрові файли, залежні від роздільної здатності, в універсально масштабовані векторні елементи.
Векторизація застарілих растрових ресурсів, таких як логотипи, креслення та технічні діаграми, забезпечує нескінченне масштабування без погіршення якості. Автоматизуючи це, розробники можуть динамічно створювати адаптивні та незалежні від роздільної здатності елементи інтерфейсу користувача або графіку для друку безпосередньо на своїй серверній інфраструктурі.
Механізм векторизації спочатку застосовує розбиття кольорів (квантування), щоб згрупувати схожі пікселі та зменшити візуальний шум. Далі алгоритми трасування контурів виявляють межі та будують фігури з безперервних кластерів пікселів. Нарешті, ці межі розраховуються у стандартні елементи SVG <path> з використанням сплайнів або вузлів кривих Безьє.
Початок роботи з Aspose.SVG for .NET API
Якщо ви зацікавлені в розробці масштабованої векторної графіки та її застосуванні, встановіть наш гнучкий, високошвидкісний Aspose.SVG for .NET API із потужним набором інтерфейсів для C# та інших мов програмування .NET.Встановіть із командного рядка як
nuget install Aspose.SVG або через консоль диспетчера пакетів Visual Studio за допомогою Install-Package Aspose.SVG.
Крім того, отримайте офлайн-інсталятор MSI або бібліотеки DLL у ZIP-файлі з
завантажень.
Aspose.SVG for .NET API – це окрема бібліотека, яка не залежить від будь-яке програмне забезпечення для обробки документів SVG.Щоб отримати докладніші відомості про встановлення бібліотеки C# і системні вимоги, зверніться до документації Aspose.SVG.
Інші підтримувані векторизатори
Ознайомтеся з цими векторизаторами зображень, щоб заощадити час і скористатися всіма перевагами векторної графіки!