Potrace как пользоваться
Перейти к содержимому

Potrace как пользоваться

  • автор:

Создавайте собственные классные векторные постеры с помощью Inkscape и potrace

В этой статье будет рассказано об очень мощной, но мало рекламируемой функции Inkscape. Если вы этого не знаете, Inkscape — это бесплатный редактор векторной графики, аналог Adobe Illustrator (например, GIMP является аналогом Photoshop для растровой графики).

Эта функция представляет собой инструмент векторизации Inkscape, который стал возможен благодаря интеграции Potrace.

«Векто-что? Зачем?»Хорошо: во-первых, быстрый курс компьютерной графики 101 в рамках нашей программы No Geek Left Behind:

  • Растровая графика описаны пиксели и представляют собой не что иное, как большую матрицу, наполненную цветами. Таким образом, они плохо выглядят при увеличении на больших уровнях.
    Примеры инструментов используется для их производства: Paint, Photoshop, Paint.NET, GIMP
    Примеры расширений: .jpg, .png, .psd, .xcf
  • Векторная графика описываются математические элементы и другие свойства. Таким образом, они выглядят резкими независимо от уровня масштабирования.
    Примеры инструментов для их производства использовались: Illustrator, Inkscape, Xara Xtreme
    Примеры расширений: .svg, .ai

Примеры использования, в которых нужно векторизовать растровый файл? Конечно. Что делать, если вы хотите правильно распечатать рисунок, который вы нашли в Интернете? Что, если вам нужен четкий логотип партнера для брошюры, а лучшее, что он вам предлагает, — это небрежный GIF? Что, если ваша компания потеряет исходные векторные файлы для своего логотипа? В таких случаях поможет данная статья.

Отказ от ответственности: Ghacks никого не поощряет использовать эти инструменты для убийства вашей кошки, очистки плутония или переработки материалов, защищенных авторским правом, в коммерческих целях. Используйте его, когда вы не можете купить оригинал, знаете лимиты добросовестного использования, будьте добропорядочным гражданином. ОК? Давайте векторизуем логотип Ghacks.

Шаг 1 : Сначала откройте файл, который хотите векторизовать, в Inkscape.

Inkscape

Шаг 2 : Выберите изображение, щелкнув его левой кнопкой мыши, и нажмите «Путь»> «Трассировать растровое изображение» (или нажмите Shift + Alt + B).

Inkscape

Шаг 3: Настройте параметры с помощью предварительного просмотра. В этом случае рекомендуется увеличить порог (используйте кнопку «Обновить», чтобы увидеть результаты ваших изменений). Затем нажмите ОК, чтобы отобразить след:

Inkscape

Шаг 4 : Наконец, вас ждет самое сложное: объявить слои, сгруппировать все вместе, сделать / исправить окраску / градиенты, вручную уточнить трассировку, добавить эффекты и т. Д.

Inkscape

Комментарии:

  • potrace не творит чудес. Хотя он творит чудеса с простыми композициями или логотипами, не ожидайте, что он векторизует сложные фотографии.
  • Я это сказал? potrace не творит чудес. Если исходное качество растра невелико и невысокого качества, то здесь и там будут появляться крапинки и артефакты. Что ж, инструменты выделения Inkscape и операторы путей здесь, чтобы помочь вам вручную улучшить результат вектора
  • Окно трассировки имеет множество режимов и опций. Играть с ними. Узнайте, как одно будет хорошо работать здесь, а другое будет предпочтительнее, чтобы извлечь лучшее из другого изображения.

Несмотря на все это, проявив некоторое воображение и опыт методом проб и ошибок, можно быстро добиться удивительно хороших результатов (особенно мне нравится играть с цветами). И хотя технически это больше ремикс, чем творчество (но кто сказал, что ремикс — это плохо?), вы изучите инструменты Inkscape в процессе, сделав еще один шаг ближе к созданию ваших собственных векторных шедевров.

Inkscape бесплатное программное обеспечение под лицензией GPLv2, доступное для всех основных платформ.

Ронан — компьютерщик и музыкант, живущий в Монреале. Ему нравится жить в местах, заполненных странными самодельными красочными плакатами, и он пишет о программах, музыке и жизни в летающей кротовиной мухе.

Смотрите так же:
  1. DVD-привод не распознается, ошибка 19 в Windows
  2. File Panther: сканирование веб-сайтов и загрузка файлов на свой компьютер
  3. Получите веб-сайт, социальные сети и анализ конкурентов с помощью Quicksprout
  4. Торрент-клиент qBittorrent 3.3 поставляется с огромным набором функций

Potrace как пользоваться

При помощи Inkscape можно векторизовать растровое изображение, то есть превратить его в SVG-элемент . О том, как работает эта функция программы и рассказывается в настоящем документе.

В настоящее время для векторизации Inkscape использует код программы Potrace Питера Селинджера (potrace.sourceforge.net). В будущем возможно подключение других программ, но уже сейчас Potrace вполне достаточно.

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

Potrace получает на входе чёрно-белые растровые изображения и отдаёт на выходе набор контуров. Существует три входных фильтра для преобразования исходного изображения в понятный для Potrace формат.

Как правило, чем темнее пикселы в изображениях, тем больше работы для Potrace. Чем больше работает векторизатор, тем больше используются ресурсы центрального процессора и тем больше описание контура (элемента ). Поэтому рекомендуется начать с более светлых версий изображения, постепенно затемняя их до получения желаемого уровня детализации конечного контура и пропорций.

Для использования векторизатора загрузите или импортируйте изображение, выберите его и используйте функцию « Контуры > Векторизовать растр. », либо комбинацию клавиш Shift+Alt+B .

Вы увидите три фильтра:

  • Яркость изображения

Этот фильтр просто использует сумму красного, зелёного и синего (или оттенки серого) компонентов пиксела в качестве индикатора, воспринимать ли его как чёрный или же как белый. Значение порога яркости может быть задано в диапазоне от 0.0 (чёрный) до 1.0 (белый). Чем выше значение, тем меньше пикселов будет воспринято как белые и тем темнее станет изображение.

  • Оптимальное определение краёв (Canny).

Этот фильтр использует алгоритм определения краёв, придуманный Дж. Канни (J. Canny) как способ быстрого поиска изоклин и подобных контрастов. Этот фильтр создаёт картинку, меньше похожую на оригинал, чем результат первого фильтра, но предоставляет информацию о кривых, которая при использовании других фильтров была бы проигнорирована. Значение порога здесь (0.0 — 1.0) регулирует порог яркости между смежными пикселами, в зависимости от которого смежные пикселы будут или не будут становиться частью контрастного края и, соответственно, попадать в вывод. Фактически, этот параметр определяет темноту или толщину края.

  • Квантование цветов

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

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

После векторизации рекомендуется воспользоваться функцией Контуры > Упростить ( Ctrl+L ) на полученном контуре, чтобы уменьшить количество узлов. Это делает результат работы Potrace более лёгким для редактирования. Вот пример типичной векторизации изображения Старика с Гитарой:

Обратите внимание на чудовищное количество узлов. После нажатия Ctrl+L результат будет таким:

Изображение немного грубовато, но зато теперь его значительно проще редактировать. Помните, что вам нужна не точная векторная копия, а набор кривых, с которыми можно работать дальше.

Пред. След.
Советы и хитрости Начало Профи

Как реализовать конвертацию из растра в черно-белый вектор на сайте

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

image

Чем отличается растровый файл от векторного
Растровая графика

Растровый файл представляет последовательность цветных квадратов (пикселей). Количество точек в файле определяется его размерами по горизонтали и вертикали. Например, файл размером 640х480 содержит 307 200 точек. Растровый файл можно представить в виде мозаики. Нельзя растянуть растровую картинку, не потеряв в качестве.

Популярные растровые форматы: JPEG, GIF, PNG, TIFF, WEBP, BPG.

Векторная графика

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

Популярные векторные форматы: SVG, EPS, WMF, PDF.

Из растра в вектор
Алгоритм векторизации

Трассировка происходит в несколько этапов:

  • Векторизатор сканирует картинку и находит все области с пикселями, окрашенными в одинаковый цвет.
  • Границы апроксимируются отрезками толщиной в 1 px.
  • Строится триангуляция с ограничением по линиям.

image

Конвертер на основе Potrace

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

Есть очень простой и бесплатный способ внедрить такую конвертацию с применением векторного редактора Inkscape. Inkscape использует Potrace для векторизации картинок.

После трейсинга картинка может быть только черно-белой. На официальном сайте potrace написано, что возможно в будущем поддержка цветности будет реализована.

Пример конвертации из PNG в SVG. На входе функция potrace принимает только файлы с расширением PNM, поэтому перед трейсингом PNG нужно конвертировать:

 exec('convert image.png image.pnm'); exec('potrace image.pnm -s -o image.svg'); 

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

Как сделать выходную картинку цветной

Кроме ручного редактирования есть еще один вариант покраски черно-белой картинки на выходе. Но картинка должна быть малоцветной. Решение подойдёт для трассировки цветных иконок, логотипов и кнопок в вектор.

Можно выделить отдельные цвета с помощью маски ppmcolormask (входит в состав пакета Netpbm):

cat img.gif | giftopnm | ppmcolormask #641b1b | potrace 

Затем трассировать каждую часть отдельно и на выходе наложить их друг на друга.

Из вектора в растр

Растеризовать векторный рисунок гораздо проще. На векторную картинку накладывается сетка с ячейками определенного размера и картинка дискретизируется, после чего кодируется согласно выходному формату.

image

Один из примеров конвертации SVG в PNG с использованием Imagick.

С помощью этого кода можно конвертировать файлы SVG в PNG24:

$svg = file_get_contents('image.svg'); $image = new Imagick(); $image->setBackgroundColor(new ImagickPixel('transparent')); $image->readImageBlob($svg); $image->setImageFormat('png24'); $image->writeImage('image.png'); $image->clear(); $image->destroy(); 

Вот здесь можно посмотреть результаты конвертации своих картинок из SVG в PNG.

Конспект
  1. Конвертировать из растра в вектор на своем сайте можно с помощью potrace.
  2. Potrace поддерживает только черно-белую векторизацию.
  3. Конвертировать из вектора в растр можно с помощью Imagick.
  • inkscape
  • potrace
  • трассировка
  • векторная графика
  • растровая графика

В мастерской начинающего шрифтодела 🙂

В мастерской начинающего шрифтодела :)

Понадобился тут без особой спешки свободный «китаезированный» декоративный шрифт. Готового не нашёл, зато нашёл скан существующего.

На скрине Inkscape 0.40cvs и FontForge (бывший pfaEdit). FontForge Вильямс вроде как уже переписывает на Gtk2, так что дурастика в заголовках его окон скоро исчезнет и забудется как страшеный сон.

Методика простая: обтравливаем литеру в GIMP, экспортируем контур в SVG, правим в Инке, импортируем инковый SVG в нужный глиф. Готово 🙂

Раундэбаут через Инк необходим потому, что на гимповых SVG фонтфордж валится в корку.

AP ★★★★★
09.12.04 16:18:25 MSK
Проверено: Demetrio ( 10.12.04 19:01:52 MSK )

Re: В мастерской начинающего шрифтодела 🙂

Прикольно.
Фонт выложишь?

vahvarh ★★★
( 10.12.04 19:05:27 MSK )

Re: В мастерской начинающего шрифтодела 🙂

А откуда такой скепсис в отношении autotrace и potrace? За второй не скажу, а autotrace, кажется, использовался для перегенерации из метафонта в Туре1 шрифтов Лашко. Да и я для своих нужд пользовал. Если шрифт крупный, то работы в pfaedit осталось немного.

Loh ★★
( 10.12.04 20:05:45 MSK )
Ответ на: Re: В мастерской начинающего шрифтодела 🙂 от vahvarh 10.12.04 19:05:27 MSK

Re: Re: В мастерской начинающего шрифтодела 🙂

Конечно. Нужно только прояснить вопрос с лицензией. Где-то на legal@altlinux.ru было обсуждение по поводу шрифтов, созданных из сканов.

AP ★★★★★
( 10.12.04 20:29:53 MSK ) автор топика
Ответ на: Re: В мастерской начинающего шрифтодела 🙂 от Loh 10.12.04 20:05:45 MSK

Re: Re: В мастерской начинающего шрифтодела 🙂

Скепсиса нет, просто мне так удобнее. Я пробовал пользоваться potrace прямо из Inkscape, но фишка в том, что скан не очень качественный — внутри самих литер куча белых точек. Закрашивать это вручную в гимпе или вручную же удалять лишние узлы в Инке — нафиг надо. Быстрее литеру обтравить, а заодно потренироваться с гимповым векторным пером 🙂

AP ★★★★★
( 10.12.04 20:36:50 MSK ) автор топика
Ответ на: Re: Re: В мастерской начинающего шрифтодела 🙂 от AP 10.12.04 20:36:50 MSK

Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Для этого дела в autotrace есть despeckle, а potrace -t

Шум такого рода (офсетная непропечатка?) autotrace удаляет на ура.

Loh ★★
( 10.12.04 21:00:56 MSK )
Ответ на: Re: Re: Re: В мастерской начинающего шрифтодела 🙂 от Loh 10.12.04 21:00:56 MSK

Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Хммм. Интересно. Похоже, пора написать по autotrace/potrace пару хороших док 🙂 А заодно разобраться в самих программах 🙂

Спасибо за наводку 🙂

AP ★★★★★
( 10.12.04 21:08:53 MSK ) автор топика

Re: В мастерской начинающего шрифтодела 🙂

Эх, кто бы занялся и обвёл все буковки какого-нибудь простого прямого шрифта векторами в sodipodi?!
Очень помогло бы 🙂

unDEFER ★★★★★
( 10.12.04 22:39:28 MSK )
Ответ на: Re: В мастерской начинающего шрифтодела 🙂 от unDEFER 10.12.04 22:39:28 MSK

Re: Re: В мастерской начинающего шрифтодела 🙂

Что такое «простой прямой шрифт»? 🙂 Без засечек что ли? 🙂

AP ★★★★★
( 11.12.04 03:16:05 MSK ) автор топика
Ответ на: Re: Re: В мастерской начинающего шрифтодела 🙂 от AP 11.12.04 03:16:05 MSK

Re: Re: Re: В мастерской начинающего шрифтодела 🙂

> Что такое «простой прямой шрифт»? 🙂 Без засечек что ли? 🙂

Нуу-у, это такой.. ну, не такой, какой ты рисуешь на скриншоте 😉

unDEFER ★★★★★
( 11.12.04 03:54:02 MSK )
Ответ на: Re: Re: Re: В мастерской начинающего шрифтодела 🙂 от unDEFER 11.12.04 03:54:02 MSK

Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Такие «простые прямые» уже есть оч. неплохие (URW, которые frob дорисовывал), хотя я пока ни разу не отдавал в полиграфию что-то, свёрстанное с их использованием. Точнее, отдавал, но печать по оргпричинам сорвалась 🙂

Просто шрифтовое дизайнерство — занятие малораспространённое, требующее как минимум усидчивости (не говоря о прямых руках). «Пионэров» (вроде меня) на это обычно не хватает, а профессионалы денег хотят 🙂

AP ★★★★★
( 11.12.04 04:15:24 MSK ) автор топика
Ответ на: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂 от AP 11.12.04 04:15:24 MSK

Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

> Такие «простые прямые» уже есть оч. неплохие
Шрифты то ест — нету _обведённых_векторами_ в sodipodi

unDEFER ★★★★★
( 11.12.04 07:14:30 MSK )

Re: В мастерской начинающего шрифтодела 🙂

респект! молодец! хоть кто-то делом занимается, а не пальцы гнёт 🙂

Pi ★★★★★
( 11.12.04 16:22:55 MSK )
Ответ на: Re: Re: В мастерской начинающего шрифтодела 🙂 от AP 10.12.04 20:29:53 MSK

Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Относительно конкретно этого скана можешь не переживать — это дореволюционный альбом.

anonymous
( 11.12.04 16:43:43 MSK )
Ответ на: Re: Re: Re: В мастерской начинающего шрифтодела 🙂 от anonymous 11.12.04 16:43:43 MSK

Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Тогда ясно, откуда пятна на литерах :)))

AP ★★★★★
( 11.12.04 21:06:49 MSK ) автор топика

Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

А что это даёт? Более гладкое масштабирование?

AP ★★★★★
( 11.12.04 21:08:02 MSK ) автор топика
Ответ на: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂 от AP 11.12.04 21:08:02 MSK

Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

> А что это даёт? Более гладкое масштабирование?
Нет, это даёт возможность добавить в imated.sf.net и может возможность начать распознавать хотя бы печатные буквы :-))

unDEFER ★★★★★
( 11.12.04 23:32:31 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Хм, интересная штука. А что, уже есть работающий движок?

AP ★★★★★
( 12.12.04 03:11:40 MSK ) автор топика
Ответ на: Re: В мастерской начинающего шрифтодела 🙂 от Pi 11.12.04 16:22:55 MSK

Re: Re: В мастерской начинающего шрифтодела 🙂

Я вот тоже пробовал шрифты для себя подправить в «Font Forge». http://bohm.narod.ru/download/fonts/index.html

P.S. Может быть еще кому-нибудь пригодятся?

anonymous
( 12.12.04 09:34:28 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

> Хм, интересная штука. А что, уже есть работающий движок?
С тем что есть уже вполне можно увидеть буквы..
Хотя несомненно работы еще много..

unDEFER ★★★★★
( 12.12.04 12:50:08 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Что-то я тормозил явно на ночь глядя 🙂

А что мешает экспортировать глифы в SVG прямо из FontForge? Я уже так делал раньше, когда мне нужен был векторный альтовый ключ из шрифта Lilypond.

AP ★★★★★
( 12.12.04 17:27:50 MSK ) автор топика

Re: Re: Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

> А что мешает экспортировать глифы в SVG прямо из FontForge?
Я то же думал, что можно это сделать экспорт из TrueType но оказалось всё не так просто:
это конечно векторный формат, но там как бы буквы обведены по краям (что и позволяет делать шрифты типа вашего), а мне надо буквы обведенные «по скелету» (векторы именно в том порядке котором мы бы их выводили при рукописи).

unDEFER ★★★★★
( 12.12.04 18:35:37 MSK )

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

Ну если это всё, чего вам не хватает для полного счастья. Можно попробовать как-нибудь.

P.S. На Kognition смотрели?

AP ★★★★★
( 12.12.04 19:31:27 MSK ) автор топика

Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: В мастерской начинающего шрифтодела 🙂

> Теперь понял 🙂
хорошо, когда тебя понимают 🙂

> Ну если это всё, чего вам не хватает для полного счастья.
Для полного счастья мне надо сдать экзамен по алгебре за 3(. ) семестра (перевод с факультета на факультет происходит явно не так гладко, как хотелось бы), тогда наконец появиться некоторое свободное время, но это будет после нового года.. тогда я буду мучать myspell, чтобы уменьшить количество перебираемых вариантов (это просто необходимо для распознавания рукописи)..

> Можно попробовать как-нибудь.
Если вдруг соберётесь то не забудьте прочитать статью:
http://imated.sourceforge.net/index.php?module=articles&mode=show_article.
Она была написана еще тогда когда в проекте вообще не было ни одного шрифта (сейчас их два, но оба рукописные), но по сути остаётся актуальной и сейчас. И хоть и там написано что нет ограничений на другие инструменты, кроме карандаша, но на самом деле не надо увлекаться линиями Безье — в конечном счёте они всё равно воспринимаются imated’ом как простые прямые линии от начальной точки к конечной.

> P.S. На Kognition смотрели?
Должен был, но не помню.. сейчас проверим:
$ locate kognition
.
/home/undefer/к Linux/Sources/kognition_with_examples-0.1.tar.bz2

значит смотрел 🙂
Интересно, этот проект развивается, а то что-то как эта интиал версия была выложена в середине прошлого года больше ничего и не видно (хотя есть еще русский перевод от 30 августа)
В любом случае этот проект основан совершенно на другом алгоритме и не ставит целью распознавание рукописи, так, что проект imated не теряет своей актуальности

P.S. Интересно почему все проекты по распознаванию (да и очень много проектов в других областях) немецкие? 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *