pull/20/merge
Jędrzej 8 years ago committed by GitHub
commit fdd04327d7

@ -40,132 +40,144 @@ Examples
Java language: Java language:
import java.awt.image.BufferedImage; ```java
import java.io.File; import java.awt.image.BufferedImage;
import javax.imageio.ImageIO; import java.io.File;
import io.nayuki.qrcodegen.*; import javax.imageio.ImageIO;
import io.nayuki.qrcodegen.*;
// Simple operation
QrCode qr0 = QrCode.encodeText("Hello, world!", QrCode.Ecc.MEDIUM); // Simple operation
BufferedImage img = qr0.toImage(4, 10); QrCode qr0 = QrCode.encodeText("Hello, world!", QrCode.Ecc.MEDIUM);
ImageIO.write(img, "png", new File("qr-code.png")); BufferedImage img = qr0.toImage(4, 10);
ImageIO.write(img, "png", new File("qr-code.png"));
// Manual operation
List<QrSegment> segs = QrSegment.makeSegments("3141592653589793238462643383"); // Manual operation
QrCode qr1 = QrCode.encodeSegments(segs, QrCode.Ecc.HIGH, 5, 5, 2, false); List<QrSegment> segs = QrSegment.makeSegments("3141592653589793238462643383");
for (int y = 0; y < qr1.size; y++) { QrCode qr1 = QrCode.encodeSegments(segs, QrCode.Ecc.HIGH, 5, 5, 2, false);
for (int x = 0; x < qr1.size; x++) { for (int y = 0; y < qr1.size; y++) {
(... paint qr1.getModule(x, y) ...) for (int x = 0; x < qr1.size; x++) {
} // paint qr1.getModule(x, y)
} }
}
```
JavaScript language: JavaScript language:
// Name abbreviated for the sake of these examples here ```js
var QRC = qrcodegen.QrCode; // Name abbreviated for the sake of these examples here
var QRC = qrcodegen.QrCode;
// Simple operation
var qr0 = QRC.encodeText("Hello, world!", QRC.Ecc.MEDIUM); // Simple operation
var svg = qr0.toSvgString(4); var qr0 = QRC.encodeText("Hello, world!", QRC.Ecc.MEDIUM);
var svg = qr0.toSvgString(4);
// Manual operation
var segs = qrcodegen.QrSegment.makeSegments("3141592653589793238462643383"); // Manual operation
var qr1 = QRC.encodeSegments(segs, QRC.Ecc.HIGH, 5, 5, 2, false); var segs = qrcodegen.QrSegment.makeSegments("3141592653589793238462643383");
for (var y = 0; y < qr1.size; y++) { var qr1 = QRC.encodeSegments(segs, QRC.Ecc.HIGH, 5, 5, 2, false);
for (var x = 0; x < qr1.size; x++) { for (var y = 0; y < qr1.size; y++) {
(... paint qr1.getModule(x, y) ...) for (var x = 0; x < qr1.size; x++) {
} // paint qr1.getModule(x, y)
} }
}
```
Python language: Python language:
from qrcodegen import * ```python
from qrcodegen import *
# Simple operation
qr0 = QrCode.encode_text("Hello, world!", QrCode.Ecc.MEDIUM) # Simple operation
svg = qr0.to_svg_str(4) qr0 = QrCode.encode_text("Hello, world!", QrCode.Ecc.MEDIUM)
svg = qr0.to_svg_str(4)
# Manual operation
segs = QrSegment.make_segments("3141592653589793238462643383") # Manual operation
qr1 = QrCode.encode_segments(segs, QrCode.Ecc.HIGH, 5, 5, 2, False) segs = QrSegment.make_segments("3141592653589793238462643383")
for y in range(qr1.get_size()): qr1 = QrCode.encode_segments(segs, QrCode.Ecc.HIGH, 5, 5, 2, False)
for x in range(qr1.get_size()): for y in range(qr1.get_size()):
(... paint qr1.get_module(x, y) ...) for x in range(qr1.get_size()):
# paint qr1.get_module(x, y)
```
C++ language: C++ language:
#include <string> ```cpp
#include <vector> #include <string>
#include "QrCode.hpp" #include <vector>
using namespace qrcodegen; #include "QrCode.hpp"
using namespace qrcodegen;
// Simple operation
QrCode qr0 = QrCode::encodeText("Hello, world!", QrCode::Ecc::MEDIUM); // Simple operation
std::string svg = qr0.toSvgString(4); QrCode qr0 = QrCode::encodeText("Hello, world!", QrCode::Ecc::MEDIUM);
std::string svg = qr0.toSvgString(4);
// Manual operation
std::vector<QrSegment> segs = // Manual operation
QrSegment::makeSegments("3141592653589793238462643383"); std::vector<QrSegment> segs =
QrCode qr1 = QrCode::encodeSegments( QrSegment::makeSegments("3141592653589793238462643383");
segs, QrCode::Ecc::HIGH, 5, 5, 2, false); QrCode qr1 = QrCode::encodeSegments(
for (int y = 0; y < qr1.size; y++) { segs, QrCode::Ecc::HIGH, 5, 5, 2, false);
for (int x = 0; x < qr1.size; x++) { for (int y = 0; y < qr1.size; y++) {
(... paint qr1.getModule(x, y) ...) for (int x = 0; x < qr1.size; x++) {
} // paint qr1.getModule(x, y)
} }
}
```
C language: C language:
#include <stdbool.h> ```c
#include <stdint.h> #include <stdbool.h>
#include "qrcodegen.h" #include <stdint.h>
#include "qrcodegen.h"
// Text data
uint8_t qr0[qrcodegen_BUFFER_LEN_MAX]; // Text data
uint8_t tempBuffer[qrcodegen_BUFFER_LEN_MAX]; uint8_t qr0[qrcodegen_BUFFER_LEN_MAX];
bool ok = qrcodegen_encodeText("Hello, world!", uint8_t tempBuffer[qrcodegen_BUFFER_LEN_MAX];
tempBuffer, qr0, qrcodegen_Ecc_MEDIUM, bool ok = qrcodegen_encodeText("Hello, world!",
qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX, tempBuffer, qr0, qrcodegen_Ecc_MEDIUM,
qrcodegen_Mask_AUTO, true); qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX,
if (!ok) qrcodegen_Mask_AUTO, true);
return; if (!ok)
return;
int size = qrcodegen_getSize(qr0);
for (int y = 0; y < size; y++) { int size = qrcodegen_getSize(qr0);
for (int x = 0; x < size; x++) { for (int y = 0; y < size; y++) {
(... paint qrcodegen_getModule(qr0, x, y) ...) for (int x = 0; x < size; x++) {
} (... paint qrcodegen_getModule(qr0, x, y) ...)
} }
}
// Binary data
uint8_t dataAndTemp[qrcodegen_BUFFER_LEN_FOR_VERSION(7)] // Binary data
= {0xE3, 0x81, 0x82}; uint8_t dataAndTemp[qrcodegen_BUFFER_LEN_FOR_VERSION(7)]
uint8_t qr1[qrcodegen_BUFFER_LEN_FOR_VERSION(7)]; = {0xE3, 0x81, 0x82};
ok = qrcodegen_encodeBinary(dataAndTemp, 3, qr1, uint8_t qr1[qrcodegen_BUFFER_LEN_FOR_VERSION(7)];
qrcodegen_Ecc_HIGH, 2, 7, qrcodegen_Mask_4, false); ok = qrcodegen_encodeBinary(dataAndTemp, 3, qr1,
qrcodegen_Ecc_HIGH, 2, 7, qrcodegen_Mask_4, false);
```
Rust language: Rust language:
extern crate qrcodegen; ```rust
use qrcodegen::QrCode; extern crate qrcodegen;
use qrcodegen::QrCodeEcc; use qrcodegen::QrCode;
use qrcodegen::QrSegment; use qrcodegen::QrCodeEcc;
use qrcodegen::QrSegment;
// Simple operation
let qr0 = QrCode::encode_text("Hello, world!", // Simple operation
QrCodeEcc::Medium).unwrap(); let qr0 = QrCode::encode_text("Hello, world!",
let svg = qr0.to_svg_string(4); QrCodeEcc::Medium).unwrap();
let svg = qr0.to_svg_string(4);
// Manual operation
let chrs: Vec<char> = "3141592653589793238462643383".chars().collect(); // Manual operation
let segs = QrSegment::make_segments(&chrs); let chrs: Vec<char> = "3141592653589793238462643383".chars().collect();
let qr1 = QrCode::encode_segments_advanced( let segs = QrSegment::make_segments(&chrs);
&segs, QrCodeEcc::High, 5, 5, Some(2), false).unwrap(); let qr1 = QrCode::encode_segments_advanced(
for y in 0 .. qr1.size() { &segs, QrCodeEcc::High, 5, 5, Some(2), false).unwrap();
for x in 0 .. qr1.size() { for y in 0 .. qr1.size() {
(... paint qr1.get_module(x, y) ...) for x in 0 .. qr1.size() {
} // paint qr1.get_module(x, y)
} }
}
```
More information about QR Code technology and this library's design can be found on the project home page. More information about QR Code technology and this library's design can be found on the project home page.
@ -173,7 +185,7 @@ More information about QR Code technology and this library's design can be found
License License
------- -------
Copyright © 2017 Project Nayuki. (MIT License) Copyright © 2017 Project Nayuki. (MIT License)<br />
[https://www.nayuki.io/page/qr-code-generator-library](https://www.nayuki.io/page/qr-code-generator-library) [https://www.nayuki.io/page/qr-code-generator-library](https://www.nayuki.io/page/qr-code-generator-library)
Permission is hereby granted, free of charge, to any person obtaining a copy of Permission is hereby granted, free of charge, to any person obtaining a copy of

@ -33,25 +33,27 @@ Manual parameters:
Examples Examples
-------- --------
extern crate qrcodegen; ```rust
use qrcodegen::QrCode; extern crate qrcodegen;
use qrcodegen::QrCodeEcc; use qrcodegen::QrCode;
use qrcodegen::QrSegment; use qrcodegen::QrCodeEcc;
use qrcodegen::QrSegment;
// Simple operation
let qr0 = QrCode::encode_text("Hello, world!", // Simple operation
QrCodeEcc::Medium).unwrap(); let qr0 = QrCode::encode_text("Hello, world!",
let svg = qr0.to_svg_string(4); QrCodeEcc::Medium).unwrap();
let svg = qr0.to_svg_string(4);
// Manual operation
let chrs: Vec<char> = "3141592653589793238462643383".chars().collect(); // Manual operation
let segs = QrSegment::make_segments(&chrs); let chrs: Vec<char> = "3141592653589793238462643383".chars().collect();
let qr1 = QrCode::encode_segments_advanced( let segs = QrSegment::make_segments(&chrs);
&segs, QrCodeEcc::High, 5, 5, Some(2), false).unwrap(); let qr1 = QrCode::encode_segments_advanced(
for y in 0 .. qr1.size() { &segs, QrCodeEcc::High, 5, 5, Some(2), false).unwrap();
for x in 0 .. qr1.size() { for y in 0 .. qr1.size() {
(... paint qr1.get_module(x, y) ...) for x in 0 .. qr1.size() {
} // paint qr1.get_module(x, y)
} }
}
```
More complete set of examples: https://github.com/nayuki/QR-Code-generator/blob/master/rust/examples/qrcodegen-demo.rs . More complete set of examples: https://github.com/nayuki/QR-Code-generator/blob/master/rust/examples/qrcodegen-demo.rs.

Loading…
Cancel
Save