Struct qrcode::QrCode
[−]
[src]
pub struct QrCode { // some fields omitted }
The encoded QR code symbol.
Methods
impl QrCode
[src]
fn new<D: AsRef<[u8]>>(data: D) -> QrResult<QrCode>
Constructs a new QR code which automatically encodes the given data.
This method uses the "medium" error correction level and automatically chooses the smallest QR code.
use qrcode::QrCode; let code = QrCode::new(b"Some data").unwrap();
fn with_error_correction_level<D: AsRef<[u8]>>(data: D, ec_level: EcLevel) -> QrResult<QrCode>
Constructs a new QR code which automatically encodes the given data at a specific error correction level.
This method automatically chooses the smallest QR code.
use qrcode::{QrCode, EcLevel}; let code = QrCode::with_error_correction_level(b"Some data", EcLevel::H).unwrap();
fn with_version<D: AsRef<[u8]>>(data: D, version: Version, ec_level: EcLevel) -> QrResult<QrCode>
Constructs a new QR code for the given version and error correction level.
use qrcode::{QrCode, Version, EcLevel}; let code = QrCode::with_version(b"Some data", Version::Normal(5), EcLevel::M).unwrap();
This method can also be used to generate Micro QR code.
use qrcode::{QrCode, Version, EcLevel}; let micro_code = QrCode::with_version(b"123", Version::Micro(1), EcLevel::L).unwrap();
fn with_bits(bits: Bits, ec_level: EcLevel) -> QrResult<QrCode>
Constructs a new QR code with encoded bits.
Use this method only if there are very special need to manipulate the raw bits before encoding. Some examples are:
- Encode data using specific character set with ECI
- Use the FNC1 modes
- Avoid the optimal segmentation algorithm
See the Bits
structure for detail.
#![allow(unused_must_use)] use qrcode::{QrCode, Version, EcLevel}; use qrcode::bits::Bits; let mut bits = Bits::new(Version::Normal(1)); bits.push_eci_designator(9); bits.push_byte_data(b"\xca\xfe\xe4\xe9\xea\xe1\xf2 QR"); bits.push_terminator(EcLevel::L); let qrcode = QrCode::with_bits(bits, EcLevel::L);
fn version(&self) -> Version
Gets the version of this QR code.
fn error_correction_level(&self) -> EcLevel
Gets the error correction level of this QR code.
fn width(&self) -> usize
Gets the number of modules per side, i.e. the width of this QR code.
The width here does not contain the quiet zone paddings.
fn max_allowed_errors(&self) -> usize
Gets the maximum number of allowed erratic modules can be introduced before the data becomes corrupted. Note that errors should not be introduced to functional modules.
fn is_functional(&self, x: usize, y: usize) -> bool
Checks whether a module at coordinate (x, y) is a functional module or not.
fn to_debug_str(&self, on_char: char, off_char: char) -> String
Converts the QR code into a human-readable string. This is mainly for debugging only.
fn to_vec(&self) -> Vec<bool>
Converts the QR code to a vector of booleans. Each entry represents the color of the module, with "true" means dark and "false" means light.
fn into_vec(self) -> Vec<bool>
Converts the QR code to a vector of booleans. Each entry represents the color of the module, with "true" means dark and "false" means light.
fn render<P: BlankAndWhitePixel + 'static>(&self) -> Renderer<P>
Renders the QR code into an image. The result is an image builder, which you may do some additional configuration before copying it into a concrete image.
Examples
let image = QrCode::new(b"hello").unwrap() .render() .dark_color(Rgb { data: [0, 0, 128] }) .light_color(Rgb { data: [224, 224, 224] }) // adjust colors .quiet_zone(false) // disable quiet zone (white border) .min_width(300) // sets minimum image size .to_image();
Note: the image
crate itself also provides method to rotate the image,
or overlay a logo on top of the QR code.
Trait Implementations
impl Index<(usize, usize)> for QrCode
[src]
type Output = bool
The returned type after indexing
fn index(&self, (x, y): (usize, usize)) -> &bool
The method for the indexing (Foo[Bar]
) operation
Derived Implementations
impl Clone for QrCode
[src]
fn clone(&self) -> QrCode
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more