LINUX.ORG.RU

Генерация векторных qr-кодов


0

1

Добрый день.

Есть ли возможность с помощью PHP или Python генерировать векторные QR-коды. Конечно, хотелось бы готовую библиотеку, но можно и просто указать правильное направление.

P.S. На крайний случай подойдут, какие-нибудь консольные утилиты для генерации векторных QR-кодов.

★★★
Ответ на: комментарий от VirRaa

И так, пока было найдено следующее решение:

qrencode -s 20 -o code.png «Hello world!»
convert code.png code.bmp
potrace -b svg -o code.svg code.bmp

На выходе получаем такой qr-код в SVG формате.

VirRaa ★★★
() автор топика
Ответ на: комментарий от fr_butch

> в PIL в svg засейвить нельзя? никогда им не пользовался просто =)

Честно говоря, понятия не имею, что такое PIL.

VirRaa ★★★
() автор топика
Ответ на: комментарий от VirRaa

А если сделать другим методом: создать bitmap с размерами точка кода = точка изображения, а потом открыть любой библиотекой и пройтись по пикселам. Думаю в генерировании svg проблем быть не должно.

AlexKiriukha ★★★★
()

Эээээ, а зачем? Растровые в png с оптимизацией будут куда меньше, и масштабировать их просто. Хотя если вашей неуемной душе присралось, то есть очень простое решение - переложите это на клиента. Создайте в js новый канвас, подгружаете в него png с qr, пробегаетесь по пикселям, и для каждого черного пикселя создаете квадрат в SVG коде. Код более чем тривиален, несколько строчек. Но ЗАЧЕМ?? SVG будет куда более тормозным чем любой растр, а учитывая квадратность (которая позволит как угодно смасштабировать) и 1 бит на пиксель (что дает смешные размеры), даже самого извращенного применения технологии не вижу

Orlangoor ★★★★★
()
Ответ на: комментарий от Orlangoor

Хотя стоп, чтото я на ночь глядя костыль предлагаю. Битмап можно генерировать и на сервере и на клиенте, и из исходных данных. Поясните пожалуйста зачем вам приспичило вектор? Какой выигрыш оно вам даст? Динамическая модификация? Canvas для таких целей будет куда более удобным и быстрым решением. Или даже менять src в img на что нибудь вроде «/qr?your%20fucking%20data»

Orlangoor ★★★★★
()
Ответ на: комментарий от AlexKiriukha

> А если сделать другим методом: создать bitmap с размерами точка кода = точка изображения, а потом открыть любой библиотекой и пройтись по пикселам. Думаю в генерировании svg проблем быть не должно.

Данный вариант сложнее, не?

VirRaa ★★★
() автор топика
Ответ на: комментарий от TTRJN

> Меня разрывает любопытство: а на фейхоа оно вам надо?

Такова задача =)

VirRaa ★★★
() автор топика

> P.S. На крайний случай подойдут, какие-нибудь консольные утилиты для генерации векторных QR-кодов.

#!/usr/bin/perl

use strict;
use warnings;
use Text::QRCode;

my @qr = @{Text::QRCode->new->plot(shift || 'NULL')};
my $w = scalar @{$qr[0]};
my $h = scalar @qr;
print qq[<?xml version="1.0" encoding="UTF-8" ?>\n];
print qq[<svg xmlns="http://www.w3.org/2000/svg" width="$w" height="$h">\n];
for my $y (0..$h-1) {
    for my $x (0..$w-1) {
        print qq[<rect x="$x" y="$y" width="1" height="1" fill="#000"/>\n] if $qr[$y][$x] eq '*';
    }
}
print "</svg>\n";
./qrsvg.pl 'Hello, LOR! :)' >hello.svg
arsi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.