Перейти к публикации

Рекомендованные сообщения

Доброго времени суток,

Может кто, где видел плагин генератора QR кода вывода адреса станицы?

То есть, плагин должен генерировать QR код страницы который можно либо сканировать прям с экрана, либо слать на почту.

Спасибо

Ссылка на сообщение
Поделиться на других сайтах
Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, alex32 сказал:

Спасибо, но он (код) подтягивает левый сайт.

 

Если есть еще что, буду благодарен.

Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, Nektov сказал:

Спасибо, но он (код) подтягивает левый сайт.

 

Если есть еще что, буду благодарен.

http://habrahabr.ru/post/92094/

Ссылка на сообщение
Поделиться на других сайтах

или вот: http://iface.menville.net/@/qrcode.js

сохраняй к себе на хостинг и подключай в то место, где хочешь показывать qr код, вот пример: http://iface.menville.net/@/qr.html

Ссылка на сообщение
Поделиться на других сайтах

Спасибо,

Использовать Google Charts API не получается

 

<img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl={full-story}" />

Ковыряет текст новости + генерит только часть кода, вместо урла,

Пример

http://i.piccy.info/i9/7effaae3a39471a3e632c2be8f2f8cd9/1446569221/1264/967350/chart.png

 

http://iface.menville.net/@/qrcode.js

Можно прям к себе загрузить, не обращаясь к другим ресурсам. Только вот куда втыкнуть адрес страницы, а именно {full-story}, я так и не нашёл.

 

+

QR касается, не не касается DLE.

Кто то видел оффлайн конвертер изображений в base64 и оффлайн генератор QR кодов.

(ссылка с Хабра, а точнее сайт с оффлайн генератором QR кодов, дает качать только после регистрации, а вот при попытке регистрации ошибка mysqli)

 

Изменено пользователем Nektov
Ссылка на сообщение
Поделиться на других сайтах

Работает :D

Как всегда спешка не приводит ни к чему хорошему, перепутал теги движка.

Правильный код для вставки

<img src="http://chart.apis.google.com/chart?cht=qr&chs=300x300&chl={full-link}" />

Пример:chart.png

Также, есть дополнительные настройки вывода кода

 

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, Nektov сказал:

Можно прям к себе загрузить, не обращаясь к другим ресурсам. Только вот куда втыкнуть адрес страницы, а именно {full-story}, я так и не нашёл.

ни куда, я же дал ссылку на пример, открой исходный код и посомтри.

 

3 часа назад, Nektov сказал:

дает качать только после регистрации, а вот при попытке регистрации ошибка mysqli

может быть. Ссылка в закладках уже давненько, не проверял. Раньше просто делал....

 

1 час назад, Nektov сказал:

Правильный код для вставки

тоже конечно вариант, но это же использование стороннего сайта, а мой вариант, это всё у тебя и ни от кого не зависит

Ссылка на сообщение
Поделиться на других сайтах
В 03.11.2015 22:33:37, odys сказал:

открой исходный код и посомтри

Вот именно это и делал.

Знаете куда втыкать подскажите

На всякий случай, сам код:

 

var qrcode = function() {
    var P = function(s, t) {
        var u = 0xEC;
        var v = 0x11;
        var w = s;
        var z = R[t];
        var A = null;
        var B = 0;
        var C = null;
        var D = new Array();
        var E = {};
        var F = function(e, f) {
            B = w * 4 + 17;
            A = function(a) {
                var b = new Array(a);
                for (var c = 0; c < a; c += 1) {
                    b[c] = new Array(a);
                    for (var d = 0; d < a; d += 1) {
                        b[c][d] = null
                    }
                }
                return b
            }(B);
            G(0, 0);
            G(B - 7, 0);
            G(0, B - 7);
            J();
            I();
            L(e, f);
            if (w >= 7) {
                K(e)
            }
            if (C == null) {
                C = O(w, z, D)
            }
            M(C, f)
        };
        var G = function(a, b) {
            for (var r = -1; r <= 7; r += 1) {
                if (a + r <= -1 || B <= a + r) continue;
                for (var c = -1; c <= 7; c += 1) {
                    if (b + c <= -1 || B <= b + c) continue;
                    if ((0 <= r && r <= 6 && (c == 0 || c == 6)) || (0 <= c && c <= 6 && (r == 0 || r == 6)) || (2 <= r && r <= 4 && 2 <= c && c <= 4)) {
                        A[a + r][b + c] = true
                    } else {
                        A[a + r][b + c] = false
                    }
                }
            }
        };
        var H = function() {
            var a = 0;
            var b = 0;
            for (var i = 0; i < 8; i += 1) {
                F(true, i);
                var c = T.getLostPoint(E);
                if (i == 0 || a > c) {
                    a = c;
                    b = i
                }
            }
            return b
        };
        var I = function() {
            for (var r = 8; r < B - 8; r += 1) {
                if (A[r][6] != null) {
                    continue
                }
                A[r][6] = (r % 2 == 0)
            }
            for (var c = 8; c < B - 8; c += 1) {
                if (A[6][c] != null) {
                    continue
                }
                A[6][c] = (c % 2 == 0)
            }
        };
        var J = function() {
            var a = T.getPatternPosition(w);
            for (var i = 0; i < a.length; i += 1) {
                for (var j = 0; j < a.length; j += 1) {
                    var b = a[i];
                    var d = a[j];
                    if (A[b][d] != null) {
                        continue
                    }
                    for (var r = -2; r <= 2; r += 1) {
                        for (var c = -2; c <= 2; c += 1) {
                            if (r == -2 || r == 2 || c == -2 || c == 2 || (r == 0 && c == 0)) {
                                A[b + r][d + c] = true
                            } else {
                                A[b + r][d + c] = false
                            }
                        }
                    }
                }
            }
        };
        var K = function(a) {
            var b = T.getBCHTypeNumber(w);
            for (var i = 0; i < 18; i += 1) {
                var c = (!a && ((b >> i) & 1) == 1);
                A[Math.floor(i / 3)][i % 3 + B - 8 - 3] = c
            }
            for (var i = 0; i < 18; i += 1) {
                var c = (!a && ((b >> i) & 1) == 1);
                A[i % 3 + B - 8 - 3][Math.floor(i / 3)] = c
            }
        };
        var L = function(a, b) {
            var c = (z << 3) | b;
            var d = T.getBCHTypeInfo(c);
            for (var i = 0; i < 15; i += 1) {
                var e = (!a && ((d >> i) & 1) == 1);
                if (i < 6) {
                    A[i][8] = e
                } else if (i < 8) {
                    A[i + 1][8] = e
                } else {
                    A[B - 15 + i][8] = e
                }
            }
            for (var i = 0; i < 15; i += 1) {
                var e = (!a && ((d >> i) & 1) == 1);
                if (i < 8) {
                    A[8][B - i - 1] = e
                } else if (i < 9) {
                    A[8][15 - i - 1 + 1] = e
                } else {
                    A[8][15 - i - 1] = e
                }
            }
            A[B - 8][8] = (!a)
        };
        var M = function(a, b) {
            var d = -1;
            var e = B - 1;
            var f = 7;
            var g = 0;
            var h = T.getMaskFunction(b);
            for (var i = B - 1; i > 0; i -= 2) {
                if (i == 6) i -= 1;
                while (true) {
                    for (var c = 0; c < 2; c += 1) {
                        if (A[e][i - c] == null) {
                            var j = false;
                            if (g < a.length) {
                                j = (((a[g] >>> f) & 1) == 1)
                            }
                            var k = h(e, i - c);
                            if (k) {
                                j = !j
                            }
                            A[e][i - c] = j;
                            f -= 1;
                            if (f == -1) {
                                g += 1;
                                f = 7
                            }
                        }
                    }
                    e += d;
                    if (e < 0 || B <= e) {
                        e -= d;
                        d = -d;
                        break
                    }
                }
            }
        };
        var N = function(a, b) {
            var c = 0;
            var d = 0;
            var e = 0;
            var f = new Array(b.length);
            var g = new Array(b.length);
            for (var r = 0; r < b.length; r += 1) {
                var h = b[r].dataCount;
                var j = b[r].totalCount - h;
                d = Math.max(d, h);
                e = Math.max(e, j);
                f[r] = new Array(h);
                for (var i = 0; i < f[r].length; i += 1) {
                    f[r][i] = 0xff & a.getBuffer()[i + c]
                }
                c += h;
                var k = T.getErrorCorrectPolynomial(j);
                var l = qrPolynomial(f[r], k.getLength() - 1);
                var m = l.mod(k);
                g[r] = new Array(k.getLength() - 1);
                for (var i = 0; i < g[r].length; i += 1) {
                    var n = i + m.getLength() - g[r].length;
                    g[r][i] = (n >= 0) ? m.get(n) : 0
                }
            }
            var o = 0;
            for (var i = 0; i < b.length; i += 1) {
                o += b[i].totalCount
            }
            var p = new Array(o);
            var q = 0;
            for (var i = 0; i < d; i += 1) {
                for (var r = 0; r < b.length; r += 1) {
                    if (i < f[r].length) {
                        p[q] = f[r][i];
                        q += 1
                    }
                }
            }
            for (var i = 0; i < e; i += 1) {
                for (var r = 0; r < b.length; r += 1) {
                    if (i < g[r].length) {
                        p[q] = g[r][i];
                        q += 1
                    }
                }
            }
            return p
        };
        var O = function(a, b, c) {
            var d = V.getRSBlocks(a, b);
            var e = W();
            for (var i = 0; i < c.length; i += 1) {
                var f = c[i];
                e.put(f.getMode(), 4);
                e.put(f.getLength(), T.getLengthInBits(f.getMode(), a));
                f.write(e)
            }
            var g = 0;
            for (var i = 0; i < d.length; i += 1) {
                g += d[i].dataCount
            }
            if (e.getLengthInBits() > g * 8) {
                throw new Error('code length overflow. (' + e.getLengthInBits() + '>' + g * 8 + ')');
            }
            if (e.getLengthInBits() + 4 <= g * 8) {
                e.put(0, 4)
            }
            while (e.getLengthInBits() % 8 != 0) {
                e.putBit(false)
            }
            while (true) {
                if (e.getLengthInBits() >= g * 8) {
                    break
                }
                e.put(u, 8);
                if (e.getLengthInBits() >= g * 8) {
                    break
                }
                e.put(v, 8)
            }
            return N(e, d)
        };
        E.addData = function(a) {
            var b = X(a);
            D.push(b);
            C = null
        };
        E.isDark = function(a, b) {
            if (a < 0 || B <= a || b < 0 || B <= b) {
                throw new Error(a + ',' + b);
            }
            return A[a][b]
        };
        E.getModuleCount = function() {
            return B
        };
        E.make = function() {
            F(false, H())
        };
        E.createTableTag = function(a, b) {
            a = a || 2;
            b = (typeof b == 'undefined') ? a * 4 : b;
            var d = '';
            d += '<table style="';
            d += ' border-width: 0px; border-style: none;';
            d += ' border-collapse: collapse;';
            d += ' padding: 0px; margin: ' + b + 'px;';
            d += '">';
            d += '<tbody>';
            for (var r = 0; r < E.getModuleCount(); r += 1) {
                d += '<tr>';
                for (var c = 0; c < E.getModuleCount(); c += 1) {
                    d += '<td style="';
                    d += ' border-width: 0px; border-style: none;';
                    d += ' border-collapse: collapse;';
                    d += ' padding: 0px; margin: 0px;';
                    d += ' width: ' + a + 'px;';
                    d += ' height: ' + a + 'px;';
                    d += ' background-color: ';
                    d += E.isDark(r, c) ? '#000000' : '#ffffff';
                    d += ';';
                    d += '"/>'
                }
                d += '</tr>'
            }
            d += '</tbody>';
            d += '</table>';
            return d
        };
        E.createImgTag = function(a, b) {
            a = a || 3;
            b = (typeof b == 'undefined') ? a * 4 : b;
            var d = E.getModuleCount() * a + b * 2;
            var e = b;
            var f = d - b;
            return bc(d, d, function(x, y) {
                if (e <= x && x < f && e <= y && y < f) {
                    var c = Math.floor((x - e) / a);
                    var r = Math.floor((y - e) / a);
                    return E.isDark(r, c) ? 0 : 1
                } else {
                    return 1
                }
            })
        };
        return E
    };
    P.stringToBytes = function(s) {
        var a = new Array();
        for (var i = 0; i < s.length; i += 1) {
            var c = s.charCodeAt(i);
            a.push(c & 0xff)
        }
        return a
    };
    P.createStringToBytes = function(j, l) {
        var m = function() {
            var a = ba(j);
            var c = function() {
                var b = a.read();
                if (b == -1) throw new Error();
                return b
            };
            var d = 0;
            var e = {};
            while (true) {
                var f = a.read();
                if (f == -1) break;
                var g = c();
                var h = c();
                var i = c();
                var k = String.fromCharCode((f << 8) | g);
                var v = (h << 8) | i;
                e[k] = v;
                d += 1
            }
            if (d != l) {
                throw new Error(d + ' != ' + l);
            }
            return e
        }();
        var n = '?'.charCodeAt(0);
        return function(s) {
            var a = new Array();
            for (var i = 0; i < s.length; i += 1) {
                var c = s.charCodeAt(i);
                if (c < 128) {
                    a.push(c)
                } else {
                    var b = m[s.charAt(i)];
                    if (typeof b == 'number') {
                        if ((b & 0xff) == b) {
                            a.push(b)
                        } else {
                            a.push(b >>> 8);
                            a.push(b & 0xff)
                        }
                    } else {
                        a.push(n)
                    }
                }
            }
            return a
        }
    };
    var Q = {
        MODE_NUMBER: 1 << 0,
        MODE_ALPHA_NUM: 1 << 1,
        MODE_8BIT_BYTE: 1 << 2,
        MODE_KANJI: 1 << 3
    };
    var R = {
        L: 1,
        M: 0,
        Q: 3,
        H: 2
    };
    var S = {
        PATTERN000: 0,
        PATTERN001: 1,
        PATTERN010: 2,
        PATTERN011: 3,
        PATTERN100: 4,
        PATTERN101: 5,
        PATTERN110: 6,
        PATTERN111: 7
    };
    var T = function() {
        var l = [
            [],
            [6, 18],
            [6, 22],
            [6, 26],
            [6, 30],
            [6, 34],
            [6, 22, 38],
            [6, 24, 42],
            [6, 26, 46],
            [6, 28, 50],
            [6, 30, 54],
            [6, 32, 58],
            [6, 34, 62],
            [6, 26, 46, 66],
            [6, 26, 48, 70],
            [6, 26, 50, 74],
            [6, 30, 54, 78],
            [6, 30, 56, 82],
            [6, 30, 58, 86],
            [6, 34, 62, 90],
            [6, 28, 50, 72, 94],
            [6, 26, 50, 74, 98],
            [6, 30, 54, 78, 102],
            [6, 28, 54, 80, 106],
            [6, 32, 58, 84, 110],
            [6, 30, 58, 86, 114],
            [6, 34, 62, 90, 118],
            [6, 26, 50, 74, 98, 122],
            [6, 30, 54, 78, 102, 126],
            [6, 26, 52, 78, 104, 130],
            [6, 30, 56, 82, 108, 134],
            [6, 34, 60, 86, 112, 138],
            [6, 30, 58, 86, 114, 142],
            [6, 34, 62, 90, 118, 146],
            [6, 30, 54, 78, 102, 126, 150],
            [6, 24, 50, 76, 102, 128, 154],
            [6, 28, 54, 80, 106, 132, 158],
            [6, 32, 58, 84, 110, 136, 162],
            [6, 26, 54, 82, 110, 138, 166],
            [6, 30, 58, 86, 114, 142, 170]
        ];
        var m = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);
        var n = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);
        var o = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);
        var p = {};
        var q = function(a) {
            var b = 0;
            while (a != 0) {
                b += 1;
                a >>>= 1
            }
            return b
        };
        p.getBCHTypeInfo = function(a) {
            var d = a << 10;
            while (q(d) - q(m) >= 0) {
                d ^= (m << (q(d) - q(m)))
            }
            return ((a << 10) | d) ^ o
        };
        p.getBCHTypeNumber = function(a) {
            var d = a << 12;
            while (q(d) - q(n) >= 0) {
                d ^= (n << (q(d) - q(n)))
            }
            return (a << 12) | d
        };
        p.getPatternPosition = function(a) {
            return l[a - 1]
        };
        p.getMaskFunction = function(a) {
            switch (a) {
                case S.PATTERN000:
                    return function(i, j) {
                        return (i + j) % 2 == 0
                    };
                case S.PATTERN001:
                    return function(i, j) {
                        return i % 2 == 0
                    };
                case S.PATTERN010:
                    return function(i, j) {
                        return j % 3 == 0
                    };
                case S.PATTERN011:
                    return function(i, j) {
                        return (i + j) % 3 == 0
                    };
                case S.PATTERN100:
                    return function(i, j) {
                        return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0
                    };
                case S.PATTERN101:
                    return function(i, j) {
                        return (i * j) % 2 + (i * j) % 3 == 0
                    };
                case S.PATTERN110:
                    return function(i, j) {
                        return ((i * j) % 2 + (i * j) % 3) % 2 == 0
                    };
                case S.PATTERN111:
                    return function(i, j) {
                        return ((i * j) % 3 + (i + j) % 2) % 2 == 0
                    };
                default:
                    throw new Error('bad maskPattern:' + a);
            }
        };
        p.getErrorCorrectPolynomial = function(b) {
            var a = qrPolynomial([1], 0);
            for (var i = 0; i < b; i += 1) {
                a = a.multiply(qrPolynomial([1, U.gexp(i)], 0))
            }
            return a
        };
        p.getLengthInBits = function(a, b) {
            if (1 <= b && b < 10) {
                switch (a) {
                    case Q.MODE_NUMBER:
                        return 10;
                    case Q.MODE_ALPHA_NUM:
                        return 9;
                    case Q.MODE_8BIT_BYTE:
                        return 8;
                    case Q.MODE_KANJI:
                        return 8;
                    default:
                        throw new Error('mode:' + a);
                }
            } else if (b < 27) {
                switch (a) {
                    case Q.MODE_NUMBER:
                        return 12;
                    case Q.MODE_ALPHA_NUM:
                        return 11;
                    case Q.MODE_8BIT_BYTE:
                        return 16;
                    case Q.MODE_KANJI:
                        return 10;
                    default:
                        throw new Error('mode:' + a);
                }
            } else if (b < 41) {
                switch (a) {
                    case Q.MODE_NUMBER:
                        return 14;
                    case Q.MODE_ALPHA_NUM:
                        return 13;
                    case Q.MODE_8BIT_BYTE:
                        return 16;
                    case Q.MODE_KANJI:
                        return 12;
                    default:
                        throw new Error('mode:' + a);
                }
            } else {
                throw new Error('type:' + b);
            }
        };
        p.getLostPoint = function(a) {
            var b = a.getModuleCount();
            var d = 0;
            for (var e = 0; e < b; e += 1) {
                for (var f = 0; f < b; f += 1) {
                    var g = 0;
                    var h = a.isDark(e, f);
                    for (var r = -1; r <= 1; r += 1) {
                        if (e + r < 0 || b <= e + r) {
                            continue
                        }
                        for (var c = -1; c <= 1; c += 1) {
                            if (f + c < 0 || b <= f + c) {
                                continue
                            }
                            if (r == 0 && c == 0) {
                                continue
                            }
                            if (h == a.isDark(e + r, f + c)) {
                                g += 1
                            }
                        }
                    }
                    if (g > 5) {
                        d += (3 + g - 5)
                    }
                }
            };
            for (var e = 0; e < b - 1; e += 1) {
                for (var f = 0; f < b - 1; f += 1) {
                    var i = 0;
                    if (a.isDark(e, f)) i += 1;
                    if (a.isDark(e + 1, f)) i += 1;
                    if (a.isDark(e, f + 1)) i += 1;
                    if (a.isDark(e + 1, f + 1)) i += 1;
                    if (i == 0 || i == 4) {
                        d += 3
                    }
                }
            }
            for (var e = 0; e < b; e += 1) {
                for (var f = 0; f < b - 6; f += 1) {
                    if (a.isDark(e, f) && !a.isDark(e, f + 1) && a.isDark(e, f + 2) && a.isDark(e, f + 3) && a.isDark(e, f + 4) && !a.isDark(e, f + 5) && a.isDark(e, f + 6)) {
                        d += 40
                    }
                }
            }
            for (var f = 0; f < b; f += 1) {
                for (var e = 0; e < b - 6; e += 1) {
                    if (a.isDark(e, f) && !a.isDark(e + 1, f) && a.isDark(e + 2, f) && a.isDark(e + 3, f) && a.isDark(e + 4, f) && !a.isDark(e + 5, f) && a.isDark(e + 6, f)) {
                        d += 40
                    }
                }
            }
            var j = 0;
            for (var f = 0; f < b; f += 1) {
                for (var e = 0; e < b; e += 1) {
                    if (a.isDark(e, f)) {
                        j += 1
                    }
                }
            }
            var k = Math.abs(100 * j / b / b - 50) / 5;
            d += k * 10;
            return d
        };
        return p
    }();
    var U = function() {
        var a = new Array(256);
        var b = new Array(256);
        for (var i = 0; i < 8; i += 1) {
            a[i] = 1 << i
        }
        for (var i = 8; i < 256; i += 1) {
            a[i] = a[i - 4] ^ a[i - 5] ^ a[i - 6] ^ a[i - 8]
        }
        for (var i = 0; i < 255; i += 1) {
            b[a[i]] = i
        }
        var c = {};
        c.glog = function(n) {
            if (n < 1) {
                throw new Error('glog(' + n + ')');
            }
            return b[n]
        };
        c.gexp = function(n) {
            while (n < 0) {
                n += 255
            }
            while (n >= 256) {
                n -= 255
            }
            return a[n]
        };
        return c
    }();

    function qrPolynomial(c, d) {
        if (typeof c.length == 'undefined') {
            throw new Error(c.length + '/' + d);
        }
        var f = function() {
            var a = 0;
            while (a < c.length && c[a] == 0) {
                a += 1
            }
            var b = new Array(c.length - a + d);
            for (var i = 0; i < c.length - a; i += 1) {
                b[i] = c[i + a]
            }
            return b
        }();
        var g = {};
        g.get = function(a) {
            return f[a]
        };
        g.getLength = function() {
            return f.length
        };
        g.multiply = function(e) {
            var a = new Array(g.getLength() + e.getLength() - 1);
            for (var i = 0; i < g.getLength(); i += 1) {
                for (var j = 0; j < e.getLength(); j += 1) {
                    a[i + j] ^= U.gexp(U.glog(g.get(i)) + U.glog(e.get(j)))
                }
            }
            return qrPolynomial(a, 0)
        };
        g.mod = function(e) {
            if (g.getLength() - e.getLength() < 0) {
                return g
            }
            var a = U.glog(g.get(0)) - U.glog(e.get(0));
            var b = new Array(g.getLength());
            for (var i = 0; i < g.getLength(); i += 1) {
                b[i] = g.get(i)
            }
            for (var i = 0; i < e.getLength(); i += 1) {
                b[i] ^= U.gexp(U.glog(e.get(i)) + a)
            }
            return qrPolynomial(b, 0).mod(e)
        };
        return g
    };
    var V = function() {
        var k = [
            [1, 26, 19],
            [1, 26, 16],
            [1, 26, 13],
            [1, 26, 9],
            [1, 44, 34],
            [1, 44, 28],
            [1, 44, 22],
            [1, 44, 16],
            [1, 70, 55],
            [1, 70, 44],
            [2, 35, 17],
            [2, 35, 13],
            [1, 100, 80],
            [2, 50, 32],
            [2, 50, 24],
            [4, 25, 9],
            [1, 134, 108],
            [2, 67, 43],
            [2, 33, 15, 2, 34, 16],
            [2, 33, 11, 2, 34, 12],
            [2, 86, 68],
            [4, 43, 27],
            [4, 43, 19],
            [4, 43, 15],
            [2, 98, 78],
            [4, 49, 31],
            [2, 32, 14, 4, 33, 15],
            [4, 39, 13, 1, 40, 14],
            [2, 121, 97],
            [2, 60, 38, 2, 61, 39],
            [4, 40, 18, 2, 41, 19],
            [4, 40, 14, 2, 41, 15],
            [2, 146, 116],
            [3, 58, 36, 2, 59, 37],
            [4, 36, 16, 4, 37, 17],
            [4, 36, 12, 4, 37, 13],
            [2, 86, 68, 2, 87, 69],
            [4, 69, 43, 1, 70, 44],
            [6, 43, 19, 2, 44, 20],
            [6, 43, 15, 2, 44, 16]
        ];
        var l = function(a, b) {
            var c = {};
            c.totalCount = a;
            c.dataCount = b;
            return c
        };
        var m = {};
        var n = function(a, b) {
            switch (b) {
                case R.L:
                    return k[(a - 1) * 4 + 0];
                case R.M:
                    return k[(a - 1) * 4 + 1];
                case R.Q:
                    return k[(a - 1) * 4 + 2];
                case R.H:
                    return k[(a - 1) * 4 + 3];
                default:
                    return undefined
            }
        };
        m.getRSBlocks = function(a, b) {
            var c = n(a, b);
            if (typeof c == 'undefined') {
                throw new Error('bad rs block @ typeNumber:' + a + '/errorCorrectLevel:' + b);
            }
            var d = c.length / 3;
            var e = new Array();
            for (var i = 0; i < d; i += 1) {
                var f = c[i * 3 + 0];
                var g = c[i * 3 + 1];
                var h = c[i * 3 + 2];
                for (var j = 0; j < f; j += 1) {
                    e.push(l(g, h))
                }
            }
            return e
        };
        return m
    }();
    var W = function() {
        var c = new Array();
        var d = 0;
        var e = {};
        e.getBuffer = function() {
            return c
        };
        e.get = function(a) {
            var b = Math.floor(a / 8);
            return ((c[b] >>> (7 - a % 8)) & 1) == 1
        };
        e.put = function(a, b) {
            for (var i = 0; i < b; i += 1) {
                e.putBit(((a >>> (b - i - 1)) & 1) == 1)
            }
        };
        e.getLengthInBits = function() {
            return d
        };
        e.putBit = function(a) {
            var b = Math.floor(d / 8);
            if (c.length <= b) {
                c.push(0)
            }
            if (a) {
                c[b] |= (0x80 >>> (d % 8))
            }
            d += 1
        };
        return e
    };
    var X = function(b) {
        var c = Q.MODE_8BIT_BYTE;
        var d = b;
        var e = P.stringToBytes(b);
        var f = {};
        f.getMode = function() {
            return c
        };
        f.getLength = function(a) {
            return e.length
        };
        f.write = function(a) {
            for (var i = 0; i < e.length; i += 1) {
                a.put(e[i], 8)
            }
        };
        return f
    };
    var Y = function() {
        var d = new Array();
        var e = {};
        e.writeByte = function(b) {
            d.push(b & 0xff)
        };
        e.writeShort = function(i) {
            e.writeByte(i);
            e.writeByte(i >>> 8)
        };
        e.writeBytes = function(b, a, c) {
            a = a || 0;
            c = c || b.length;
            for (var i = 0; i < c; i += 1) {
                e.writeByte(b[i + a])
            }
        };
        e.writeString = function(s) {
            for (var i = 0; i < s.length; i += 1) {
                e.writeByte(s.charCodeAt(i))
            }
        };
        e.toByteArray = function() {
            return d
        };
        e.toString = function() {
            var s = '';
            s += '[';
            for (var i = 0; i < d.length; i += 1) {
                if (i > 0) {
                    s += ','
                }
                s += d[i]
            }
            s += ']';
            return s
        };
        return e
    };
    var Z = function() {
        var c = 0;
        var d = 0;
        var e = 0;
        var f = '';
        var g = {};
        var h = function(b) {
            f += String.fromCharCode(j(b & 0x3f))
        };
        var j = function(n) {
            if (n < 0) {} else if (n < 26) {
                return 0x41 + n
            } else if (n < 52) {
                return 0x61 + (n - 26)
            } else if (n < 62) {
                return 0x30 + (n - 52)
            } else if (n == 62) {
                return 0x2b
            } else if (n == 63) {
                return 0x2f
            }
            throw new Error('n:' + n);
        };
        g.writeByte = function(n) {
            c = (c << 8) | (n & 0xff);
            d += 8;
            e += 1;
            while (d >= 6) {
                h(c >>> (d - 6));
                d -= 6
            }
        };
        g.flush = function() {
            if (d > 0) {
                h(c << (6 - d));
                c = 0;
                d = 0
            }
            if (e % 3 != 0) {
                var a = 3 - e % 3;
                for (var i = 0; i < a; i += 1) {
                    f += '='
                }
            }
        };
        g.toString = function() {
            return f
        };
        return g
    };
    var ba = function(a) {
        var b = a;
        var d = 0;
        var e = 0;
        var f = 0;
        var g = {};
        g.read = function() {
            while (f < 8) {
                if (d >= b.length) {
                    if (f == 0) {
                        return -1
                    }
                    throw new Error('unexpected end of file./' + f);
                }
                var c = b.charAt(d);
                d += 1;
                if (c == '=') {
                    f = 0;
                    return -1
                } else if (c.match(/^\s$/)) {
                    continue
                }
                e = (e << 6) | h(c.charCodeAt(0));
                f += 6
            }
            var n = (e >>> (f - 8)) & 0xff;
            f -= 8;
            return n
        };
        var h = function(c) {
            if (0x41 <= c && c <= 0x5a) {
                return c - 0x41
            } else if (0x61 <= c && c <= 0x7a) {
                return c - 0x61 + 26
            } else if (0x30 <= c && c <= 0x39) {
                return c - 0x30 + 52
            } else if (c == 0x2b) {
                return 62
            } else if (c == 0x2f) {
                return 63
            } else {
                throw new Error('c:' + c);
            }
        };
        return g
    };
    var bb = function(k, l) {
        var m = k;
        var n = l;
        var o = new Array(k * l);
        var p = {};
        p.setPixel = function(x, y, a) {
            o[y * m + x] = a
        };
        p.write = function(a) {
            a.writeString('GIF87a');
            a.writeShort(m);
            a.writeShort(n);
            a.writeByte(0x80);
            a.writeByte(0);
            a.writeByte(0);
            a.writeByte(0x00);
            a.writeByte(0x00);
            a.writeByte(0x00);
            a.writeByte(0xff);
            a.writeByte(0xff);
            a.writeByte(0xff);
            a.writeString(',');
            a.writeShort(0);
            a.writeShort(0);
            a.writeShort(m);
            a.writeShort(n);
            a.writeByte(0);
            var b = 2;
            var c = r(b);
            a.writeByte(b);
            var d = 0;
            while (c.length - d > 255) {
                a.writeByte(255);
                a.writeBytes(c, d, 255);
                d += 255
            }
            a.writeByte(c.length - d);
            a.writeBytes(c, d, c.length - d);
            a.writeByte(0x00);
            a.writeString(';')
        };
        var q = function(c) {
            var d = c;
            var e = 0;
            var f = 0;
            var g = {};
            g.write = function(a, b) {
                if ((a >>> b) != 0) {
                    throw new Error('length over');
                }
                while (e + b >= 8) {
                    d.writeByte(0xff & ((a << e) | f));
                    b -= (8 - e);
                    a >>>= (8 - e);
                    f = 0;
                    e = 0
                }
                f = (a << e) | f;
                e = e + b
            };
            g.flush = function() {
                if (e > 0) {
                    d.writeByte(f)
                }
            };
            return g
        };
        var r = function(a) {
            var b = 1 << a;
            var d = (1 << a) + 1;
            var e = a + 1;
            var f = t();
            for (var i = 0; i < b; i += 1) {
                f.add(String.fromCharCode(i))
            }
            f.add(String.fromCharCode(b));
            f.add(String.fromCharCode(d));
            var g = Y();
            var h = q(g);
            h.write(b, e);
            var j = 0;
            var s = String.fromCharCode(o[j]);
            j += 1;
            while (j < o.length) {
                var c = String.fromCharCode(o[j]);
                j += 1;
                if (f.contains(s + c)) {
                    s = s + c
                } else {
                    h.write(f.indexOf(s), e);
                    if (f.size() < 0xfff) {
                        if (f.size() == (1 << e)) {
                            e += 1
                        }
                        f.add(s + c)
                    }
                    s = c
                }
            }
            h.write(f.indexOf(s), e);
            h.write(d, e);
            h.flush();
            return g.toByteArray()
        };
        var t = function() {
            var b = {};
            var c = 0;
            var d = {};
            d.add = function(a) {
                if (d.contains(a)) {
                    throw new Error('dup key:' + a);
                }
                b[a] = c;
                c += 1
            };
            d.size = function() {
                return c
            };
            d.indexOf = function(a) {
                return b[a]
            };
            d.contains = function(a) {
                return typeof b[a] != 'undefined'
            };
            return d
        };
        return p
    };
    var bc = function(a, c, d, e) {
        var f = bb(a, c);
        for (var y = 0; y < c; y += 1) {
            for (var x = 0; x < a; x += 1) {
                f.setPixel(x, y, d(x, y))
            }
        }
        var b = Y();
        f.write(b);
        var g = Z();
        var h = b.toByteArray();
        for (var i = 0; i < h.length; i += 1) {
            g.writeByte(h[i])
        }
        g.flush();
        var j = '';
        j += '<img border="0"';
        j += '\u0020src="';
        j += 'data:image/gif;base64,';
        j += g;
        j += '"';
        j += '\u0020width="';
        j += a;
        j += '"';
        j += '\u0020height="';
        j += c;
        j += '"';
        if (e) {
            j += '\u0020alt="QR Code';
            j += e;
            j += '"'
        }
        j += '/>';
        return j
    };
    return P
}();
var qr = qrcode(5, 'L');
qr.addData('URL:' + document.URL);
qr.make();
document.write(qr.createImgTag());

 

Вопрос к администрации форума: А где подевался спойлер, при создании сообщения?

Изменено пользователем Nektov
Вопрос к администрации форума: А где подевался спойлер, при создании сообщения?
Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Nektov сказал:

Знаете куда втыкать подскажите

в то место, где должен появиться qr код. Я же написал. Открой исходный код из примера, там всё наглядно

Ссылка на сообщение
Поделиться на других сайтах
В 10.11.2015 21:38:40, odys сказал:

Я же написал. Открой исходный код из примера, там всё наглядно

Я кажись также писал ...

В 10.11.2015 19:50:47, Nektov сказал:

Знаете куда втыкать подскажите

 

В 10.11.2015 21:38:40, odys сказал:

в то место, где должен появиться qr код

То есть, код вписывать (выводить) в шаблон (шаблоне)?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Nektov сказал:

То есть, код вписывать (выводить) в шаблон (шаблоне)?

да, в то место где ты хочешь чтобы показывался qr код, js сам всё сделает.

Ссылка на сообщение
Поделиться на других сайтах
8 часов назад, Datagor сказал:

Nektov, такие листинги надо в спойлер заворачивать. У меня мышка устала листать :D

 

В 10.11.2015 19:50:47, Nektov сказал:

Вопрос к администрации форума: А где подевался спойлер, при создании сообщения?

Изменено 10 Ноябрь пользователем Nektov
Вопрос к администрации форума: А где подевался спойлер, при создании сообщения?

 

В 17.11.2015 16:06:37, odys сказал:

да, в то место где ты хочешь чтобы показывался qr код, js сам всё сделает.

Cпасибо

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...