123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432 |
- Metadata-Version: 2.0
- Name: qrcode
- Version: 6.0
- Summary: QR Code image generator
- Home-page: https://github.com/lincolnloop/python-qrcode
- Author: Lincoln Loop
- Author-email: info@lincolnloop.com
- License: BSD
- Keywords: django,countries,flags
- Platform: UNKNOWN
- Classifier: Development Status :: 5 - Production/Stable
- Classifier: License :: OSI Approved :: BSD License
- Classifier: Operating System :: OS Independent
- Classifier: Intended Audience :: Developers
- Classifier: Programming Language :: Python
- Classifier: Programming Language :: Python :: 2.7
- Classifier: Programming Language :: Python :: 3.4
- Classifier: Programming Language :: Python :: 3.5
- Classifier: Programming Language :: Python :: 3.6
- Classifier: Topic :: Multimedia :: Graphics
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
- Provides-Extra: test
- Provides-Extra: pil
- Provides-Extra: maintainer
- Provides-Extra: dev
- Requires-Dist: six
- Requires-Dist: colorama; platform_system == "Windows"
- Provides-Extra: dev
- Requires-Dist: tox; extra == 'dev'
- Requires-Dist: pytest; extra == 'dev'
- Provides-Extra: dev
- Requires-Dist: mock; python_version < "3" and extra == 'dev'
- Provides-Extra: maintainer
- Requires-Dist: zest.releaser[recommended]; extra == 'maintainer'
- Provides-Extra: pil
- Requires-Dist: pillow; extra == 'pil'
- Provides-Extra: test
- Requires-Dist: pytest; extra == 'test'
- Requires-Dist: pytest-cov; extra == 'test'
- Provides-Extra: test
- Requires-Dist: mock; python_version < "3" and extra == 'test'
- =============================
- Pure python QR Code generator
- =============================
- Generate QR codes.
- For a standard install (which will include pillow_ for generating images),
- run::
- pip install qrcode[pil]
- .. _pillow: https://pypi.python.org/pypi/Pillow
- What is a QR Code?
- ==================
- A Quick Response code is a two-dimensional pictographic code used for its fast
- readability and comparatively large storage capacity. The code consists of
- black modules arranged in a square pattern on a white background. The
- information encoded can be made up of any kind of data (e.g., binary,
- alphanumeric, or Kanji symbols)
- Usage
- =====
- From the command line, use the installed ``qr`` script::
- qr "Some text" > test.png
- Or in Python, use the ``make`` shortcut function:
- .. code:: python
- import qrcode
- img = qrcode.make('Some data here')
- Advanced Usage
- --------------
- For more control, use the ``QRCode`` class. For example:
- .. code:: python
- import qrcode
- qr = qrcode.QRCode(
- version=1,
- error_correction=qrcode.constants.ERROR_CORRECT_L,
- box_size=10,
- border=4,
- )
- qr.add_data('Some data')
- qr.make(fit=True)
- img = qr.make_image(fill_color="black", back_color="white")
- The ``version`` parameter is an integer from 1 to 40 that controls the size of
- the QR Code (the smallest, version 1, is a 21x21 matrix).
- Set to ``None`` and use the ``fit`` parameter when making the code to determine
- this automatically.
- ``fill_color`` and ``back_color`` can change the background and the painting
- color of the QR, when using the default image factory.
- The ``error_correction`` parameter controls the error correction used for the
- QR Code. The following four constants are made available on the ``qrcode``
- package:
- ``ERROR_CORRECT_L``
- About 7% or less errors can be corrected.
- ``ERROR_CORRECT_M`` (default)
- About 15% or less errors can be corrected.
- ``ERROR_CORRECT_Q``
- About 25% or less errors can be corrected.
- ``ERROR_CORRECT_H``.
- About 30% or less errors can be corrected.
- The ``box_size`` parameter controls how many pixels each "box" of the QR code
- is.
- The ``border`` parameter controls how many boxes thick the border should be
- (the default is 4, which is the minimum according to the specs).
- Other image factories
- =====================
- You can encode as SVG, or use a new pure Python image processor to encode to
- PNG images.
- The Python examples below use the ``make`` shortcut. The same ``image_factory``
- keyword argument is a valid option for the ``QRCode`` class for more advanced
- usage.
- SVG
- ---
- You can create the entire SVG or an SVG fragment. When building an entire SVG
- image, you can use the factory that combines as a path (recommended, and
- default for the script) or a factory that creates a simple set of rectangles.
- From your command line::
- qr --factory=svg-path "Some text" > test.svg
- qr --factory=svg "Some text" > test.svg
- qr --factory=svg-fragment "Some text" > test.svg
- Or in Python:
- .. code:: python
- import qrcode
- import qrcode.image.svg
- if method == 'basic':
- # Simple factory, just a set of rects.
- factory = qrcode.image.svg.SvgImage
- elif method == 'fragment':
- # Fragment factory (also just a set of rects)
- factory = qrcode.image.svg.SvgFragmentImage
- else:
- # Combined path factory, fixes white space that may occur when zooming
- factory = qrcode.image.svg.SvgPathImage
- img = qrcode.make('Some data here', image_factory=factory)
- Two other related factories are available that work the same, but also fill the
- background of the SVG with white::
- qrcode.image.svg.SvgFillImage
- qrcode.image.svg.SvgPathFillImage
- Pure Python PNG
- ---------------
- Install the following two packages::
- pip install git+git://github.com/ojii/pymaging.git#egg=pymaging
- pip install git+git://github.com/ojii/pymaging-png.git#egg=pymaging-png
- From your command line::
- qr --factory=pymaging "Some text" > test.png
- Or in Python:
- .. code:: python
- import qrcode
- from qrcode.image.pure import PymagingImage
- img = qrcode.make('Some data here', image_factory=PymagingImage)
- ==========
- Change log
- ==========
- 6.0 (23 March 2018)
- ===================
- - Fix optimize length being ignored in ``QRCode.add_data``.
- - Better calculation of the best mask pattern and related optimizations. Big
- thanks to cryptogun!
- 5.3 (18 May 2016)
- =================
- * Fix incomplete block table for QR version 15. Thanks Rodrigo Queiro for the
- report and Jacob Welsh for the investigation and fix.
- * Avoid unnecessary dependency for non MS platforms, thanks to Noah Vesely.
- * Make ``BaseImage.get_image()`` actually work.
- 5.2 (25 Jan 2016)
- =================
- * Add ``--error-correction`` option to qr script.
- * Fix script piping to stdout in Python 3 and reading non-UTF-8 characters in
- Python 3.
- * Fix script piping in Windows.
- * Add some useful behind-the-curtain methods for tinkerers.
- * Fix terminal output when using Python 2.6
- * Fix terminal output to display correctly on MS command line.
- 5.2.1
- -----
- * Small fix to terminal output in Python 3 (and fix tests)
- 5.2.2
- -----
- * Revert some terminal changes from 5.2 that broke Python 3's real life tty
- code generation and introduce a better way from Jacob Welsh.
- 5.1 (22 Oct 2014)
- =================
- * Make ``qr`` script work in Windows. Thanks Ionel Cristian Mărieș
- * Fixed print_ascii function in Python 3.
- * Out-of-bounds code version numbers are handled more consistently with a
- ValueError.
- * Much better test coverage (now only officially supporting Python 2.6+)
- 5.0 (17 Jun 2014)
- =================
- * Speed optimizations.
- * Change the output when using the ``qr`` script to use ASCII rather than
- just colors, better using the terminal real estate.
- * Fix a bug in passing bytecode data directly when in Python 3.
- * Substation speed optimizations to best-fit algorithm (thanks Jacob Welsh!).
- * Introduce a ``print_ascii`` method and use it as the default for the ``qr``
- script rather than ``print_tty``.
- 5.0.1
- -----
- * Update version numbers correctly.
- 4.0 (4 Sep 2013)
- ================
- * Made qrcode work on Python 2.4 - Thanks tcely.
- Note: officially, qrcode only supports 2.5+.
- * Support pure-python PNG generation (via pymaging) for Python 2.6+ -- thanks
- Adam Wisniewski!
- * SVG image generation now supports alternate sizing (the default box size of
- 10 == 1mm per rectangle).
- * SVG path image generation allows cleaner SVG output by combining all QR rects
- into a single path. Thank you, Viktor Stískala.
- * Added some extra simple SVG factories that fill the background white.
- 4.0.1
- -----
- * Fix the pymaging backend not able to save the image to a buffer. Thanks ilj!
- 4.0.2
- -----
- * Fix incorrect regex causing a comma to be considered part of the alphanumeric
- set.
- * Switch to using setuptools for setup.py.
- 4.0.3
- -----
- * Fix bad QR code generation due to the regex comma fix in version 4.0.2.
- 4.0.4
- -----
- * Bad version number for previous hotfix release.
- 3.1 (12 Aug 2013)
- =================
- * Important fixes for incorrect matches of the alpha-numeric encoding mode.
- Previously, the pattern would match if a single line was alpha-numeric only
- (even if others wern't). Also, the two characters ``{`` and ``}`` had snuck
- in as valid characters. Thanks to Eran Tromer for the report and fix.
- * Optimized chunking -- if the parts of the data stream can be encoded more
- efficiently, the data will be split into chunks of the most efficient modes.
- 3.1.1
- -----
- * Update change log to contain version 3.1 changes. :P
- * Give the ``qr`` script an ``--optimize`` argument to control the chunk
- optimization setting.
- 3.0 (25 Jun 2013)
- =================
- * Python 3 support.
- * Add QRCode.get_matrix, an easy way to get the matrix array of a QR code
- including the border. Thanks Hugh Rawlinson.
- * Add in a workaround so that Python 2.6 users can use SVG generation (they
- must install ``lxml``).
- * Some initial tests! And tox support (``pip install tox``) for testing across
- Python platforms.
- 2.7 (5 Mar 2013)
- ================
- * Fix incorrect termination padding.
- 2.6 (2 Apr 2013)
- ================
- * Fix the first four columns incorrectly shifted by one. Thanks to Josep
- Gómez-Suay for the report and fix.
- * Fix strings within 4 bits of the QR version limit being incorrectly
- terminated. Thanks to zhjie231 for the report.
- 2.5 (12 Mar 2013)
- =================
- * The PilImage wrapper is more transparent - you can use any methods or
- attributes available to the underlying PIL Image instance.
- * Fixed the first column of the QR Code coming up empty! Thanks to BecoKo.
- 2.5.1
- -----
- * Fix installation error on Windows.
- 2.4 (23 Apr 2012)
- =================
- * Use a pluggable backend system for generating images, thanks to Branko Čibej!
- Comes with PIL and SVG backends built in.
- 2.4.1
- -----
- * Fix a packaging issue
- 2.4.2
- -----
- * Added a ``show`` method to the PIL image wrapper so the ``run_example``
- function actually works.
- 2.3 (29 Jan 2012)
- =================
- * When adding data, auto-select the more efficient encoding methods for numbers
- and alphanumeric data (KANJI still not supported).
- 2.3.1
- -----
- * Encode unicode to utf-8 bytestrings when adding data to a QRCode.
- 2.2 (18 Jan 2012)
- =================
- * Fixed tty output to work on both white and black backgrounds.
- * Added `border` parameter to allow customizing of the number of boxes used to
- create the border of the QR code
- 2.1 (17 Jan 2012)
- =================
- * Added a ``qr`` script which can be used to output a qr code to the tty using
- background colors, or to a file via a pipe.
|