npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@zu-min/qrcode

v2.1.1

Published

QR Code generator.

Downloads

725

Readme

qrcode.js — JavaScript QR Code Generator

test

使い方 - browser

Canvas の場合

<script src="/path/to/qrcode.min.js"></script>
<canvas id="qr">
<script>
try {
    qrcode.generate('QR コードの内容', {
        // QR Code options
    }).drawToCanvas(document.getElementById('qr'), {
        // canvas options
    });
} catch (e) {
    // 生成失敗時の処理
}
</script>

SVG の場合

<script src="/path/to/qrcode.min.js"></script>
<svg id="qrSvg"></svg>
<script>
try {
    qrcode.generate('QR コードの内容', {
        // QR Code options
    }).drawToSvg(document.getElementById('qrSvg'), {
        // SVG options
    });
} catch (e) {
    // 生成失敗時の処理
}
</script>

使い方 - Vue with TypeScript

インストール

npm i -S @zu-min/qrcode

Canvas の場合

<template>
    <canvas ref="canvas"></canvas>
</template>

<script lang="ts">
import Vue from 'vue'
import * as qr from '@zu-min/qrcode'
export default Vue.extend({
    mounted() {
        this.generate()
    },
    methods: {
        generate() {
            try {
                qr.generate("QR コードの内容", {
                    // QR Code options
                }).drawToCanvas(this.$refs.canvas as HTMLCanvasElement, {
                    // canvas options
                })
            } catch (e) {
                // 生成失敗時の処理
            }
        }
    }
})
</script>

SVG の場合

<template>
    <svg ref="svg"></svg>
</template>

<script lang="ts">
import Vue from 'vue'
import * as qr from '@zu-min/qrcode'
export default Vue.extend({
    mounted() {
        this.generate()
    },
    methods: {
        generate() {
            try {
                qr.generate("QR コードの内容", {
                    // QR Code options
                }).drawToSvg(this.$refs.svg as SVGElement, {
                    // SVG options
                })
            } catch (e) {
                // 生成失敗時の処理
            }
        }
    }
})
</script>

QR Code options

{
    division: 1,
    level: qrcode.EccLevel.L,
    type: 1,
    encoder: {
        charset: 'utf8',
        useEci: false,
    },
    debug: false,
}

上記はデフォルト値です。

division

構造的連接 QR コード(分割)を作成します。1 の場合は分割無し、2以降の場合は分割 の上限値として使用します。最大は 16 です。指定した数の QR コードを埋めるだけの 十分なデータがない場合、指定した数より少なくなります。

level

誤り訂正レベルです。レベルが高いほど、QRコード読み取り時の誤り訂正能力が 上がりますが、その分データ量が多くなり QR コードの大きさも大きくなります。

qrcode.EccLevel.L; // 低
qrcode.EccLevel.M;
qrcode.EccLevel.Q;
qrcode.EccLevel.H; // 高

encoder

入力文字列を QR コード用に符号化するエンコーダーの設定です。 通常は設定値を含んだオブジェクトを指定します。 オブジェクトの代わりに独自の Encoder を指定することも可能です。

encoder.charset

指定した文字コードで符号化します。以下の文字コードに対応しています。

  • UTF-8
  • Shift_JIS など、機種により読み取れない文字があります

encoder.useEci

true の場合は ECI ヘッダを出力します。読み取り機によって対応可否があるので、 動作確認して決定してください。

debug

true の場合、 console にログを出力します。

canvas options

{
    thickness: 1,
    color: 'rgb(0,0,0)',
    backgroundColor: 'rgb(255,255,255)',
    debug: false,
    flipHorizontal: false,
    transparent: false,
}

上記はデフォルト値です。

thickness

モジュール(QRコードのドット1つ)の1辺の長さを px で指定します。

color

モジュールの色を指定します。 rgb(0, 0, 0) 形式か、 #000000 形式で指定できます。

backgroundColor

背景色を指定します。 rgb(255, 255, 255) 形式か、 #ffffff 形式で指定できます。

debug

true の場合、デバッグ用に塗り分けを行います。

flipHorizontal

true の場合、左右反転します。

transparent

true の場合、背景を透明にします。

SVG options

{
    idPrefix: "qrSvg",
    thickness: 1,
    color: 'rgb(0,0,0)',
    backgroundColor: 'rgb(255,255,255)',
    flipHorizontal: false,
    transparent: false,
}

上記はデフォルト値です。

idPrefix

SVG 内で使用する ID 属性の接頭辞です。SVG 以外も含め、ページ内で一意になる必要が あります。

thickness

モジュール(QRコードのドット1つ)の1辺の長さを px で指定します。

color

モジュールの色を指定します。 rgb(0, 0, 0) 形式か、 #000000 形式で指定できます。

backgroundColor

背景色を指定します。 rgb(255, 255, 255) 形式か、 #ffffff 形式で指定できます。

flipHorizontal

true の場合、左右反転します。

transparent

true の場合、背景を透明にします。

読み取り機種による制約

iPhone

  • 構造的連接(分割)に非対応
  • Shift_JIS の場合、機種依存文字( など)が含まれると読み取れない

フィーチャーフォン(ガラケー)

  • ECI ヘッダがあると読み取れない機種がある
  • Shift_JIS しか読めない機種がある
  • 構造的連接に対応していない機種がある
  • 明暗反転した QR は読めない機種がある

その他

QR コード / QR Code はデンソーウェーブの登録商標です。