Как преобразовать qr-код в вектор
Обновлено: 21.11.2024
Я могу успешно создавать изображения QR Code PNG с помощью ZXing, но нет простого способа получить выходные данные в формате SVG или EPS.
Как создать векторное изображение из объекта BitMatrix, созданного QRCodeWriter?
Я бы сомневался, что вам это нужно в векторном формате. QR-код — это набор идеально квадратных черных и белых пикселей. Он будет увеличиваться до бесконечности без потери точности. Так что, я бы сказал, сохранить как PNG.
В этом мире все еще есть устройства, которые не поддерживают PNG. Одним из них является лазерный гравер. Вот почему мне понадобился векторный формат
5 ответов 5
У меня это не сработало: созданный SVG не был допустимым QR-кодом и заметно отличался от изображения PNG в BitMatrix. Закрыто, но повреждено.
Можно даже сделать это только с помощью zxing без дополнительных библиотек:
Обратите внимание, что приведенное выше решение намного эффективнее с точки зрения потребления памяти, чем решение, использующее DOM Batik.
Это работает, но для QR-кода вывод кажется небольшим. большой. 105 КБ против 359 байт для png. Онлайн-генератор обработал тот же URL в 2 КБ. Я думаю, что этот подход является правильным, но нуждается в оптимизации.
Решено: настройка размера в 'encode()' помогает управлять выводом и работает хорошо. Спасибо за это изящное решение.
В частности, передача нулей в качестве ширины и высоты приведет к тому, что ZXing создаст матрицу, соответствующую размерам QR-кода (включая "тихую зону").
Самый простой способ, который я нашел, — это создать PDF-файл с помощью iText, а затем преобразовать полученный PDF-файл в EPS или SVG. Вот код для создания PDF:
Затем я использую магию изображения для преобразования. Вот так:
то же самое НЕ МОЖЕТ быть сделано для svg
это не работает
Я протестировал этот код с длинным контентом, и он работал до 600 символов. Вероятно, это связано с точностью камеры телефона или экрана.
Надеюсь, это кому-то поможет
лично я бы использовал для этого трассировку inkscape в PNG, но если этот ответ работает, вы можете его использовать.
обводка не требуется, а заливку можно выполнить один раз в конце. (Я не проверял это с itext, но такова спецификация PDF)
Вы можете использовать Apache Batik вместо JFreeSVG, если вам нужна более свободная лицензия. Это особенно важно, когда вы используете Apache FOP, который включает Apache Batik в качестве временной зависимости.
Вот измененная версия. Авторство идеи и оригинального кода принадлежит Дэвиду Гилберту.
Формат Svg представляет собой набор прямоугольников, из которых создается BitMatrix. Идея формата заключается в том, что разрешение изображения не зависит от увеличения размера. Например, решение @siom создает прямоугольники 1x1 для всех пикселей (поэтому создается огромный файл). Я классифицирую это решение как грубый подход к этой проблеме.
Я разработал лучшее решение, работающее за O(n^2). Он сканирует всю битовую матрицу и сначала определяет квадрат максимальной длины в каждой точке, а затем пытается расширить квадрат до прямоугольника в каждом измерении. Наконец, он рисует все возможные прямоугольники и квадраты различных размеров.
Заслуживает признания. Замечательное решение. Некоторые незначительные проблемы с именами переменных, но кого это волнует, когда вы получаете QR-код svg. Спасибо!
Нужна помощь в выборе типа файла для загрузки дизайнов QR-кода? Здесь мы собрали несколько советов по графическому дизайну QR-кода, а также обзор различных типов файлов изображений и способов их использования с QR-кодами.
-
Из этой статьи вы узнаете:
- Основные сведения о QR-коде
- Минимальный размер QR-кода
- Как использовать различные форматы файлов QR-кода
Что такое QR-код и как он работает?
QR-коды, также известные как коды быстрого ответа, были разработаны для повышения информативности и эффективности штрих-кодов. Они имеют квадратную форму, что позволяет считывать их как по горизонтали, так и по вертикали, а не только по горизонтали, как штрих-коды. Благодаря уникальной 2D-технологии QR-коды могут содержать в сотни раз больше информации, чем штрих-коды, и имеют повышенную устойчивость к ошибкам от 7 до 30%.
Размер и формат имеют значение
Чтобы ваши QR-коды продолжали работать эффективно, нужно помнить о нескольких технических элементах дизайна и размера. Не говоря уже о том, что непрофессиональный дизайн может повлиять на репутацию вашей компании. Стоит перепроверить аспекты графического дизайна, потому что проблемы со сканированием QR-кода из-за плохой графики могут привести к потере клиентов и неудачным маркетинговым кампаниям.
Убедитесь, что дизайн вашего QR-кода читаем
QR-коды можно масштабировать для разных носителей, но в целом они должны быть как минимум 2 x 2 см (около 0,8 x 0,8 дюйма). Они должны быть достаточно большими, чтобы их мог прочитать сканер QR-кода, иметь соответствующую окраску, иметь достаточно хорошее качество изображения, чтобы они не размывались, и должны четко выделяться, чтобы читатели их заметили. Чтобы получить дополнительную информацию о пользовательском дизайне QR-кода, ознакомьтесь с этим обзором здесь.
Увеличивайте масштаб, уменьшайте масштаб, но держитесь подальше
Кроме того, размер вашего QR-кода также можно увеличить для печатной рекламы, например на рекламных щитах или на больших транспортных средствах. Тем не менее, всегда следите за тем, чтобы ваше изображение было четким и читабельным для читателей вблизи и издалека. Если люди не могут прочитать ваше объявление и QR-код, это сводит на нет цель вашей рекламной кампании.
Когда и как загружать QR-коды в файлы разных форматов
Программное обеспечение QR Code Generator позволяет создавать QR-коды в четырех различных форматах файлов изображений. Но прежде чем мы перейдем к форматам файлов, вот краткое руководство о том, как загрузить дизайн QR-кода с помощью генератора QR-кода.
Как скачать QR-коды с помощью генератора QR-кодов
После того как вы вошли в свою учетную запись QR Code Generator и завершили создание своего QR-кода, вам необходимо распечатать его, чтобы его можно было добавить на любой носитель, на котором вы планируете его использовать. Затем вы увидите изображение вашего QR-кода слева с большой кнопкой «СКАЧАТЬ». Эта кнопка видна независимо от выбранной вкладки настройки.
На этом этапе вы можете либо нажать «СКАЧАТЬ», и ваш QR-код будет автоматически загружен в виде файла PNG. Или вы можете нажать на три точки справа от кнопки, чтобы открыть дополнительные параметры формата файла.
Затем QR-коды можно загрузить в виде файлов PNG, JPG, SVG или EPS. Обратите внимание, что вы также можете создать PDF-версию вашего QR-кода, выполнив несколько дополнительных шагов, как указано ниже, но не напрямую с помощью программного обеспечения QR Code Generator.
Кроме того, QR-код можно загрузить повторно или в другом формате из списка ваших QR-кодов. Просто нажмите «Загрузить» рядом с QR-кодом, который вы хотите загрузить снова, и вы попадете на тот же экран настройки, чтобы выбрать формат файла для загрузки.
И последнее, что следует упомянуть о размерах QR-кода и форматах файлов: генератор QR-кодов предлагает опцию для высокой скорости исправления ошибок перед загрузкой. Это устанавливает допустимый уровень ошибок на максимальном уровне 30%, что означает, что ваш QR-код может выдержать повреждение до 30% пикселей, прежде чем его нельзя будет отсканировать. Обратите внимание, однако, что использование максимальной допустимой ошибки увеличивает плотность QR-кода, а это означает, что вам потребуется увеличить минимальный размер печати.
Теперь, когда мы дали обзор того, как загружать QR-коды, вот описание различных форматов файлов изображений для QR-кодов и когда они могут вам понадобиться.
Что такое файл SVG?
Как это работает: SVG означает масштабируемую векторную графику. Векторная графика — это формат файла изображения, который, в отличие, например, от JPEG, не состоит из пикселей. Вместо этого он использует пути, которые представляют собой определенную форму, используемую для создания изображения. Они хорошо работают как для упрощенных рисунков, так и для сложных диаграмм. Таким образом, SVG — это 2D-версия векторной графики, которая описывает изображения в текстовом формате и является стандартным форматом файлов для использования векторной графики на цифровых носителях. Список всех программ, которые читают файлы SVG, смотрите здесь.
Когда использовать: файлы SVG полезны, когда вам нужно масштабировать QR-код до большого размера. Как упоминалось выше, в векторной графике не используются пиксели, как в других изображениях. Проблема с пиксельными изображениями заключается в том, что если вы увеличиваете их размер, их качество ухудшается. Благодаря такой структуре пути файлы SVG не имеют этой проблемы. В результате они идеально подходят для веб-изображений, значков, иллюстраций и больших QR-кодов.
Что такое EPS-файл?
Как это работает: EPS расшифровывается как Encapsulated Postscript и представляет собой еще один тип векторной графики. Они считаются лучшим выбором с точки зрения качества для печати графики с высоким разрешением. Как и другая векторная графика, файлы EPS легко масштабируются по размеру и могут открываться в стандартных программах графического дизайна, таких как Adobe.
Когда его использовать. Если вы планируете использовать свой QR-код в печатных материалах или печатной рекламе, лучше всего подойдет файл EPS. В частности, поскольку в файлах EPS используются векторные графические пути, они идеально подходят для QR-кодов для рекламных щитов или плакатов, чтобы качество было четким даже на расстоянии. Однако обратите внимание, что файлы EPS являются только черно-белыми, а это означает, что любые функции настройки, добавленные в ваш QR-код с помощью программного обеспечения QR Code Generator, не будут видны в этом формате. Если вы хотите отдельно добавить функции настройки в свой QR-код, вам может подойти файл EPS.
Что такое файл JPG?
Как это работает: JPG расшифровывается как Объединенная группа экспертов по фотографии и является наиболее распространенным типом файла изображения. Типичные изображения JPG используют коэффициент сжатия 10:1, а это означает, что если вы создадите изображение размером 10 МБ и экспортируете его в формате JPG, оно в конечном итоге будет иметь размер 1 МБ. Файлы JPG сжимают изображения, группируя пиксели вместе, чтобы они выглядели похожими на пиксели вокруг них.
Когда использовать. Хотя файлы JPG являются стандартными для фотографии, их проблема заключается в том, что при каждом сохранении качество изображения ухудшается. Это делает их непригодными для детальной графики и иллюстраций с резкими линиями. Для QR-кодов лучше всего начать с другого типа формата файла, а затем экспортировать в JPG позже, если вам нужен файл меньшего размера.
Что такое файл PNG?
Как это работает: PNG означает переносимую сетевую графику и представляет собой файл, который использует сжатие для сопоставления битов данных изображения с короткими кодами, хранящимися в самом файле. Это делает файл меньшего размера, но по-прежнему имеет высокое качество. PNG имеет «сжатие без потерь», что означает, что качество не теряется при каждом открытии и сохранении изображения. Они также хорошо справляются с цветовым контрастом для насыщенных цветов изображений.
Когда использовать: из-за того, как они управляют сжатием изображений, файлы PNG часто используются по умолчанию для снимков экрана. Они создают почти идеальное представление пикселей вместо того, чтобы объединять группы пикселей, как в JPG. Хотя это файлы большего размера, чем файлы JPG, файлы PNG хорошо подходят для веб-графики. Поэтому, когда вы используете этот тип файла для своего QR-кода, он больше подходит для размещения на вашем веб-сайте или в публикациях в социальных сетях.
Что такое файл PDF?
Как это работает: PDF означает Portable Document Format. Файлы PDF, разработанные Adobe в 1990-х годах, больше подходят для полных документов, чем для отдельных изображений. Они могут содержать любые элементы, которые может включать любой документ, например текст, изображения, гиперссылки, кнопки, формы и многое другое.
Когда использовать. Хотя маловероятно, что вы будете использовать QR-коды напрямую в виде файлов PDF, вы все же можете загрузить их в формате PDF, если хотите. Просто выберите значок печати, как указано (первое изображение ниже), и, в зависимости от операционной системы, вы можете выбрать «Сохранить как PDF» в месте ввода, где обычно находится принтер (второе изображение ниже).
Примечание от 19.10.2012: в Adobe Illustrator CS6 предыдущая функция под названием «Живая трассировка» теперь называется «Трассировка изображения».Чтобы внести изменения в настройки, перейдите в «Окно» -> «Трассировка изображения», и появится панель. После этого вы можете перейти в Object -> Image Trace -> Make. Приятного просмотра и спасибо за комментарии!
В прошлом мне поступали клиенты, которые предлагали размещать QR-коды на маркетинговых печатных материалах. Обычно, когда я просматриваю присланный файл, это сжатое изображение с очень низким разрешением, которое плохо воспроизводится при печати. Если вы являетесь владельцем Creative Suite, не бойтесь, есть простой трюк, чтобы преобразовать эти маленькие изображения в векторные контуры. Это позволит вам масштабировать QRCode независимо от DPI/размера. Мы можем получить векторный путь из jpg, gif или png, используя функцию Live Trace Adobe Illustrator!
Вам потребуется открыть Adobe Illustrator и создать новый файл. Не беспокойтесь о размере документа. Либо выберите «Файл» -> «Поместить» (чтобы импортировать изображение на холст), либо скопируйте/вставьте изображение.
На этом этапе перейдите в Объект -> Текущая трассировка -> Параметры трассировки
Я использовал следующие настройки, чтобы получить точную трассировку пути на основе изображения QRCode. Я использовал следующие настройки:
Порог: 1 (или 2)
Размытие: 0 пикселей
Подгонка контура: 0 пикселей
Минимальная площадь: 0 пикселей
Угол угла: 0
Когда вы нажмете Трассировка, пути будут сгенерированы. Дважды проверьте правильность отображения, установив флажок Предварительный просмотр.
После того, как это будет сделано, нажмите на сгенерированный объект, перейдите в Object -> Live Trace -> Expand, и он покажет пути.
На этом этапе вы можете либо использовать объект пути в Adobe Illustrator, либо скопировать/вставить его в Adobe Photoshop. Примечание. При вставке в Adobe Photoshop используйте команду «Вставить как смарт-объект». Он сохранит свои векторные пути, что позволит вам масштабировать объект до любого размера / dpi.
Форум пользователей Inkscape
векторизировать QR-код
векторизировать QR-код
Я пытаюсь преобразовать растровое изображение QR-кода (2D-штрих-код) в векторную графику. Я регулярно использую функцию «векторизации» Inkscape с отличными результатами для многих типов изображений. Но для этого я не могу найти правильную конфигурацию.
Вот пример моих попыток:
одна из моих попыток vectorize_qrcode.jpg (103,58 КиБ) Просмотрено 6041 раз
Обратите внимание, что предварительный просмотр — это именно тот результат, который мне нужен, но когда применяется реальная векторизация, результат отличается.
Спасибо за любой совет.
Добро пожаловать в InkscapeForum!
Вероятно, трассировку можно улучшить, изменив некоторые настройки на вкладке "Параметры". Например, попробуйте вообще снять флажок «Сглаженные углы». Кроме того, возможно, установите допуск Optimize Paths настолько высоким, насколько это возможно. Я не уверен, нужно ли вам использовать Suppress Speckles. Я не знаю, повлияет ли это на трассировку, если нет пятен, которые нужно подавить, но вы можете попробовать отменить выбор, чтобы посмотреть, поможет ли это. Кроме того, я думаю, что я бы, вероятно, выбрал один вариант сканирования на вкладке «Режим» - возможно, «Отсечка яркости». Но обратите внимание, что предварительный просмотр не обновляется для этой опции. Вместо этого вы должны сделать трассировку, затем, если вам нужно изменить пороговое значение, отменить и снова выполнить трассировку.
В любом случае, удачи. Я надеюсь, что что-то из этого поможет. Дайте нам знать, как это происходит
-
- Отсечка яркости, порог = 1, инвертированное изображение: предварительный просмотр - это то, что я ожидаю, но когда я нажимаю OK, ничего не происходит (форма не создается)
- Обнаружение краев: не подходит
- Квантование цвета: нет соответствующий
- Шаги яркости, сканы = 2, сглаживание отключено: предварительный просмотр - это то, что я ожидаю, но результат сглажен
- Цвета, сканы = 2, сглаживание отключено: предварительный просмотр - это то, что я ожидаю, но результат сглажен
- оттенки серого, сканы = 2, сглаживание отключено: предварительный просмотр соответствует моим ожиданиям, но результат сглажен
Исходное растровое изображение представляет собой чистый GIF. Файл прикреплен к моему сообщению, если кто-то захочет попробовать.
Лучший скан, который я смог сделать, прилагается. Я думаю, что это слишком мало, чтобы можно было подобрать детали. Я не знаю, сможете ли вы увеличить масштаб и получить лучшее сканирование. Я знаю, что при большем масштабировании он будет пикселизироваться, но вы можете преодолеть пикселизацию, изменив настройки трассировки. Но я не знаю. Я думаю, что это просто невыполнимая миссия.
Нестандартное мышление. может быть несложно нарисовать это изображение в Inkscape. Эти крошечные квадраты составляют ровно 2 квадратных пикселя. Я привязал все это к пиксельной сетке! Нужно было просто сделать квадраты такого размера, добавить нужный цвет и выровнять по сетке. Просто мысль
После установки заново создайте код qr, и вы получите прекрасные векторы. Вот пример: qr_code
если вы действительно хотите создать его в формате svg, вы можете использовать мозаичные клоны:
2012-10-16_135712.jpg (186,24 КБ) Просмотрено 5986 раз
Единственная «уловка» заключается в том, что первоначальные клоны не могут быть размером с пиксели QR-кода при использовании параметра «цвет трассировки» в диалоговом окне мозаичных клонов, так как он сэмплирует периметр, и вы не получите черно-белый клоны.
Для этого я создал прямоугольник 2x2 (поскольку исходное изображение имело блоки по 4 пикселя в QR-коде), центр которого находился в верхнем левом блоке QR-кода, и заполнил поле "не задано". Затем я создал мозаичные клоны, отследив исходное изображение цветом, и добавил 100% смещение по осям X и Y, чтобы они соответствовали сетке QR-кода 4 пикселя. Следующим шагом было выбрать исходный квадрат и изменить его размер на 4x4, что изменит все квадраты на 4x4, чтобы избавиться от пробелов. Последнее, что я сделал (на самом деле необязательно), — это разъединил клоны, затем выбрал все черные квадраты (используя диалоговое окно «Найти») и объединил их в один путь, выбрал все белые квадраты и удалил их, а затем нарисовал один большой белый квадрат. размер всего QR-кода для фона.
все эти предложения замечательны, но нет никаких причин, по которым вы не можете сделать это в Inkscape с достаточной или превосходной точностью.
Но ваше растровое изображение немного (на самом деле, несколько бит) слишком мало.
Простое масштабирование в Inkscape ничего не дает — это распространенная ошибка пользователей, пытающихся увеличить размер своего объекта трассировки перед трассировкой. Масштабирование, если вы посмотрите на информационную панель, не изменяет размер в пикселях, а просто размер на экране. Что вам нужно сделать, так это увеличить масштаб, а ЗАТЕМ СДЕЛАТЬ РАстровую копию. Теперь у вас будет растровое изображение с более высоким размером в пикселях! Использование этого источника в качестве источника трассировки даст вам лучшие или, по крайней мере, другие результаты.
Вы даже можете сделать растровую копию более точной, убедившись, что оригинал выровнен по пиксельной сетке перед вызовом «сделать растровую копию». хотя для данного примера я этого не делал, обладая ленивым и неуклюжим характером.
На этом изображении показан результат: векторный путь уменьшен до размера исходного растрового изображения.
rect3284.jpg (9,95 КиБ) просмотрено 5970 раз
Обратите внимание, что это не совсем точно. Небольшое отклонение происходит из-за неточности в процессе создания копии растрового изображения, а НЕ в трассировке!
Если вы откроете файл SVG, вы найдете:
1. Исходное растровое изображение,
2. Копия растрового изображения большего размера в пикселях,
3. Красный путь - это трассировка этой копии и
4. синий путь - копия красного пути, уменьшенная, чтобы проверить, насколько хорошо он соответствует оригиналу.
Перемещая предметы, вы можете видеть, что красный путь точно соответствует растровому изображению, которое он проследил, а синий путь близок, но не совсем совпадает с исходным изображением QR-кода.
Что касается настроек, я использовал отсечку яркости, логичный выбор для высококонтрастного источника, и пороговое значение 0,450, хотя любое значение от 0,05 до 0,95 давало одинаковое количество узлов. Снимите все остальные галочки и не поддавайтесь искушению упростить получившийся путь!
Количество узлов также не изменилось в зависимости от размера растровой копии после того, как она была примерно в два раза больше оригинала, поэтому растровые копии размером от 169 до 5200 квадратных пикселей дали 2512 узлов!
Результат должен быть полностью пригодным для использования, но если требуется более высокая точность, было бы целесообразно масштабировать растровое изображение в программе редактирования растра, такой как GIMP, где вы также можете уменьшить разрядность изображения до 1 бита (черный и белый).
Читайте также: