Почему SVG выглядит пикселизированным и как это исправить
Даже настоящий SVG может показывать пиксели: встроенный растр, растрирующий просмотрщик или размытость маленького значка. Вот быстрая диагностика и исправления.
На этой странице
SVG должен масштабироваться чётко, поэтому при блочных краях начните с трёх распространённых причин. Файл может содержать настоящие пиксели, приложение может растрировать предпросмотр или импорт, либо настоящий вектор просто мягко отображается на крошечной пиксельной сетке. Каждой причине нужно своё исправление; короткая диагностика покажет, с какой вы столкнулись. Эта статья не о логотипе PNG или JPG, который пикселизуется при увеличении. Такой файл никогда не был SVG, и у этой проблемы своё решение.
Диагностика за 30 секунд
- Сильно увеличьте (500%+) в двух просмотрщиках. Блочность в каждом указывает на растр. Если блочность только в одном приложении, оно, вероятно, растрирует предпросмотр.
- Откройте SVG в текстовом редакторе. Тег
<image>с длинным блокомdata:image/png;base64,…означает, что ваш «вектор» — замаскированный растр. - Решайте по проверке файла. Увеличение вызывает подозрение; элемент
<image>или прямоугольный объект изображения подтверждает встроенные пиксели.
Причина 1: внутри SVG есть пиксели
Это ловушка встроенного изображения. SVG — формат контейнера, и спецификация SVG 2 позволяет элементу <image> встраивать растровое содержимое или ссылаться на него. Если нужно отличить связанный PNG от встроенных данных или вложенного SVG, используйте проверку смешанного содержимого SVG. Инструменты применяют эту возможность по-разному:
- Псевдопреобразования. Некоторые инструменты «PNG в SVG» ничего не трассируют. Они оборачивают растр тегом
<image>и возвращают с расширением .svg. Он масштабируется столь же плохо, как оригинальный PNG, потому что это и есть оригинальный PNG. - Экспорт с растрированием сложных частей. Приложения экспортируют доступное контурами и незаметно растрируют остальное: падающие тени, размытия, градиентные сетки, заливки изображением. Поэтому логотип остаётся чётким везде, кроме одного изгиба или эффекта: именно эта загадка «частичной пикселизации» заполняет дизайнерские форумы.
- Фотографическое содержимое. Фотография не превращается в чистые контуры, поэтому инструменты «преобразования» фото в SVG часто встраивают их либо создают постеризованное приближение. Инструменты карт делают это намеренно для слоёв светотени; это допустимо, поскольку светотень по природе имеет непрерывные тона.
- Оболочки форматов. Файл может нести векторные данные, читаемые одним приложением и не читаемые другим. Столкнувшись с непонятными данными, приложение использует встроенный растровый предпросмотр: в одной программе видны пиксели, в другой — чистые векторы.
Как подтвердить: откройте .svg в любом текстовом редакторе и найдите <image. Блок base64 — причина. В Inkscape или Illustrator щёлкните размытую область: если выделяется один прямоугольный объект «изображение», а не контуры, вывод тот же. Эта проверка выявляет псевдо-SVG от ИИ-инструментов и экспортеров и занимает меньше минуты.
Исправление: пикселям нужно стать контурами, то есть растровое содержимое нужно действительно векторизовать. Пропустите оригинальное или встроенное изображение через настоящее преобразование изображения в вектор и замените элемент <image> трассированным результатом. Если встроено фото, у векторизации свои ограничения; иногда честное решение — принять растр там, где ему место.

Причина 2: файл исправен, но просмотрщик растрирует
Если браузер или Inkscape показывает чёткие контуры, а одно приложение — блочные, прекратите редактировать файл. Проблема в импорте или предпросмотре приложения:
- Некоторые процессы импорта приложений растрируют SVG в размере импорта или предпросмотра. Последующее увеличение кешированного изображения увеличивает растр. Решение на стороне приложения — импорт или рендеринг в целевом разрешении.
- After Effects может непрерывно растрировать векторные слои при их трансформации; Adobe описывает переключатель Continuously Rasterize для векторных слоёв. Если грубо выглядит только предпросмотр композиции, проверьте его разрешение и переключатель слоя до изменения SVG.
- Illustrator может намеренно показывать рисунок через Pixel Preview. Выключите View > Pixel Preview, прежде чем считать сам контур пикселизированным.
- Миниатюры и предпросмотры. Миниатюры файлового менеджера и быстрые предпросмотры — растрирование низкого разрешения. Они ничего не говорят о файле.
Универсальный тест: откройте тот же файл в браузере или Inkscape. Если там он чёткий, SVG исправен, а решение находится в настройках импорта или предпросмотра другого приложения.
Для игровых ресурсов проверьте процесс импорта SVG и растрирования в Godot или способ импорта SVG в Unity для вашего редактора и системы UI, прежде чем считать, что в исходнике нет векторных контуров.
Причина 3: настоящий вектор выглядит размытым в малом размере
Значки живут в размере от 16 до 24 пикселей, и математически идеальная кривая должна попасть на грубую пиксельную сетку. Сглаживание делает пограничные пиксели серыми, поэтому результат кажется «слегка размытым», особенно при тонких обводках и положении на полупикселе. Увеличение показывает идеально чёткие векторные края — так вы понимаете, что проблема не во встроенном изображении.
Исправления относятся к дизайну: выровняйте горизонтальные и вертикальные края по целым пикселям в целевом размере, используйте целочисленную пиксельную толщину обводок и предпочитайте наборы значков, нарисованные для используемого размера. Избыточно точные данные контуров из экспорта дизайнерских инструментов могут усиливать мягкость в крошечном размере; упрощённые контуры отображаются предсказуемее.
Причина и исправление с первого взгляда
| Что вы видите | Причина | Исправление |
|---|---|---|
Блочность во всех просмотрщиках, элемент <image> в файле | Растровое изображение встроено в SVG | Действительно векторизуйте содержимое и замените <image> |
| Один изгиб чёткий, другой пикселизирован | Экспорт растрировал эффект или заливку | Восстановите элемент контурами или векторизуйте весь рисунок |
| Чётко в браузере, пикселизировано в одном приложении | Приложение растрирует при импорте или предпросмотре | Исправьте настройки импорта/предпросмотра приложения, а не файл |
| Чётко при 100%, размыто как маленький значок | Размытость настоящего вектора из-за пиксельной сетки | Выровняйте края и обводки по пикселям в целевом размере |
| «Пикселизация» только в миниатюре | Растровый предпросмотр низкого разрешения | Игнорируйте его; проверьте настоящее отображение |
Как не допускать пиксели в SVG
Предотвращение в основном относится к моменту преобразования или экспорта. Прежде чем полагаться на SVG, один раз выполните проверку текстовым редактором: элементы <path> — хорошо; блоки <image> — не вектор. При преобразовании используйте конвертер, который трассирует, а не создаёт оболочку, и подтвердите результат выделением отдельных фигур. При экспорте из дизайнерского инструмента сначала сведите или раскройте эффекты в контуры: всё, что экспортер не выражает векторами, уйдёт в пиксели. Помните, что на самом деле представляет собой SVG: расширение обещает формат, а не содержимое.
Как это работает в PerfectVector
PerfectVector обходит эту ловушку: трассирует изображение в настоящие контуры и никогда не создаёт оболочку. Загрузите PNG или JPG — получите фигуры, которые можно выделять, перекрашивать и бесконечно увеличивать; каждый цвет является отдельным редактируемым объектом, а элемента <image> в файле нет. Если вы только что обнаружили, что ваш «SVG» — замаскированный растр, правильно преобразуйте исходное изображение и выполните ту же проверку текстовым редактором для результата. Увидеть различие один раз — самый быстрый способ больше не попасться. Первые преобразования бесплатны, банковская карта не требуется.


Частые вопросы
Почему SVG выглядит пикселизированным при увеличении?
Одно увеличение не доказывает наличие пикселей в SVG: некоторые приложения растрируют предпросмотр. Откройте файл в браузере или Inkscape, затем проверьте исходный текст на элемент <image> либо выделите размытую область и посмотрите, является ли она прямоугольным объектом изображения. Если проверки подтверждают встроенный растр, векторизуйте содержимое и замените элемент изображения.
Как узнать, есть ли в SVG встроенное изображение?
Откройте его в любом текстовом редакторе и найдите <image. Длинная строка data:image/png;base64 — растр, встроенный в файл. Также можно щёлкнуть размытую область в Inkscape или Illustrator: если выделяется один прямоугольный объект изображения вместо контуров, оно встроено.
Почему SVG пикселизирован в одном приложении, но нормально выглядит в браузере? Приложение растрирует его. Игровые движки растрируют SVG в размере импорта, предпросмотр After Effects — в разрешении композиции, а некоторые приложения по умолчанию показывают встроенные изображения с блочной интерполяцией. Если браузер или Inkscape показывает чётко, файл исправен; измените настройки приложения.
Можно ли исправить SVG со встроенным изображением? Да. Возьмите исходный растр или извлеките встроенный, пропустите через настоящий векторизатор, затем замените элемент изображения трассированным результатом. Если встроено фото, ожидайте стилизованного векторного приближения, а не точной копии: фото не сводится к чистым контурам.
Почему значки SVG размыты в малом размере? Обычно это размытость из-за пиксельной сетки, а не встроенное изображение. При размере от 16 до 24 пикселей сглаживание превращает невыровненные края в серые пиксели. Выровняйте края и толщину обводок по целым пикселям в целевом размере, и значки станут чётче. Увеличьте, чтобы подтвердить чёткость самих контуров.
Всегда ли преобразование PNG в SVG создаёт настоящие векторы? Нет. Некоторые инструменты действительно трассируют изображение в контуры, другие лишь оборачивают PNG контейнером SVG. Результат масштабируется чётко только в первом случае. Проверяйте преобразованные файлы на теги изображений и предпочитайте конвертер, показывающий редактируемые фигуры в результате.
Источники
- W3C: встроенное содержимое SVG 2 — Определяет элемент SVG
<image>и растровое содержимое внутри документа SVG. - Adobe Illustrator: просмотр рисунка — Документирует Pixel Preview и другие режимы отображения.
- Adobe After Effects: слои — Документирует переключатель Continuously Rasterize для векторных слоёв.
- Adobe Illustrator: создание рисунка с точностью до пикселя — Объясняет выравнивание по пиксельной сетке для маленьких рисунков.
Подозреваете проблему в рабочем файле? Выполните тест увеличения, затем преобразуйте оригинальное изображение в настоящий SVG из контуров и сравните. Пиксели скрываются; контуры — нет.
Ещё из блога

Импорт SVG в PixiJS: Graphics или текстура
Импортируйте SVG в PixiJS как геометрию или текстуру. Проверьте значок в двух размерах, разрешение текстуры и потерю преобразований группы перед выпуском.

SVG в fpdf2: сохраните контуры в PDF на Python
Поместите SVG-логотип в PDF на Python через fpdf2, задайте размер, проверьте сохранённые контуры и найдите причину пропавшего текста или фигур перед переходом к растру.
