pull/31/merge
rugk 7 years ago committed by GitHub
commit a34f25d95f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -40,135 +40,146 @@ More information about QR Code technology and this library's design can be found
Examples Examples
-------- --------
Java language: Java:
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:
// 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 // Simple operation
var qr0 = QRC.encodeText("Hello, world!", QRC.Ecc.MEDIUM); var qr0 = QRC.encodeText("Hello, world!", QRC.Ecc.MEDIUM);
var svg = qr0.toSvgString(4); var svg = qr0.toSvgString(4);
// Manual operation // Manual operation
var segs = qrcodegen.QrSegment.makeSegments("3141592653589793238462643383"); var segs = qrcodegen.QrSegment.makeSegments("3141592653589793238462643383");
var qr1 = QRC.encodeSegments(segs, QRC.Ecc.HIGH, 5, 5, 2, false); var qr1 = QRC.encodeSegments(segs, QRC.Ecc.HIGH, 5, 5, 2, false);
for (var y = 0; y < qr1.size; y++) { for (var y = 0; y < qr1.size; y++) {
for (var x = 0; x < qr1.size; x++) { for (var x = 0; x < qr1.size; x++) {
(... paint qr1.getModule(x, y) ...) (... paint qr1.getModule(x, y) ...)
}
} }
}
Python language: ```
from qrcodegen import * Python:
# Simple operation ```python
qr0 = QrCode.encode_text("Hello, world!", QrCode.Ecc.MEDIUM) from qrcodegen import *
svg = qr0.to_svg_str(4)
# Simple operation
# Manual operation qr0 = QrCode.encode_text("Hello, world!", QrCode.Ecc.MEDIUM)
segs = QrSegment.make_segments("3141592653589793238462643383") svg = qr0.to_svg_str(4)
qr1 = QrCode.encode_segments(segs, QrCode.Ecc.HIGH, 5, 5, 2, False)
for y in range(qr1.get_size()): # Manual operation
for x in range(qr1.get_size()): segs = QrSegment.make_segments("3141592653589793238462643383")
(... paint qr1.get_module(x, y) ...) qr1 = QrCode.encode_segments(segs, QrCode.Ecc.HIGH, 5, 5, 2, False)
for y in range(qr1.get_size()):
C++ language: for x in range(qr1.get_size()):
(... paint qr1.get_module(x, y) ...)
#include <string> ```
#include <vector>
#include "QrCode.hpp" C++:
using namespace qrcodegen;
```c++
// Simple operation #include <string>
QrCode qr0 = QrCode::encodeText("Hello, world!", QrCode::Ecc::MEDIUM); #include <vector>
std::string svg = qr0.toSvgString(4); #include "QrCode.hpp"
using namespace qrcodegen;
// Manual operation
std::vector<QrSegment> segs = // Simple operation
QrSegment::makeSegments("3141592653589793238462643383"); QrCode qr0 = QrCode::encodeText("Hello, world!", QrCode::Ecc::MEDIUM);
QrCode qr1 = QrCode::encodeSegments( std::string svg = qr0.toSvgString(4);
segs, QrCode::Ecc::HIGH, 5, 5, 2, false);
for (int y = 0; y < qr1.getSize(); y++) { // Manual operation
for (int x = 0; x < qr1.getSize(); x++) { std::vector<QrSegment> segs =
(... paint qr1.getModule(x, y) ...) QrSegment::makeSegments("3141592653589793238462643383");
} QrCode qr1 = QrCode::encodeSegments(
segs, QrCode::Ecc::HIGH, 5, 5, 2, false);
for (int y = 0; y < qr1.getSize(); y++) {
for (int x = 0; x < qr1.getSize(); x++) {
(... paint qr1.getModule(x, y) ...)
} }
}
C language: ```
#include <stdbool.h> C:
#include <stdint.h>
#include "qrcodegen.h" ```c
#include <stdbool.h>
// Text data #include <stdint.h>
uint8_t qr0[qrcodegen_BUFFER_LEN_MAX]; #include "qrcodegen.h"
uint8_t tempBuffer[qrcodegen_BUFFER_LEN_MAX];
bool ok = qrcodegen_encodeText("Hello, world!", // Text data
tempBuffer, qr0, qrcodegen_Ecc_MEDIUM, uint8_t qr0[qrcodegen_BUFFER_LEN_MAX];
qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX, uint8_t tempBuffer[qrcodegen_BUFFER_LEN_MAX];
qrcodegen_Mask_AUTO, true); bool ok = qrcodegen_encodeText("Hello, world!",
if (!ok) tempBuffer, qr0, qrcodegen_Ecc_MEDIUM,
return; qrcodegen_VERSION_MIN, qrcodegen_VERSION_MAX,
qrcodegen_Mask_AUTO, true);
int size = qrcodegen_getSize(qr0); if (!ok)
for (int y = 0; y < size; y++) { return;
for (int x = 0; x < size; x++) {
(... paint qrcodegen_getModule(qr0, x, y) ...) int size = qrcodegen_getSize(qr0);
} for (int y = 0; y < size; 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: ```
extern crate qrcodegen; Rust:
use qrcodegen::QrCode;
use qrcodegen::QrCodeEcc; ```rust
use qrcodegen::QrSegment; extern crate qrcodegen;
use qrcodegen::QrCode;
// Simple operation use qrcodegen::QrCodeEcc;
let qr0 = QrCode::encode_text("Hello, world!", use qrcodegen::QrSegment;
QrCodeEcc::Medium).unwrap();
let svg = qr0.to_svg_string(4); // Simple operation
let qr0 = QrCode::encode_text("Hello, world!",
// Manual operation QrCodeEcc::Medium).unwrap();
let chrs: Vec<char> = "3141592653589793238462643383".chars().collect(); let svg = qr0.to_svg_string(4);
let segs = QrSegment::make_segments(&chrs);
let qr1 = QrCode::encode_segments_advanced( // Manual operation
&segs, QrCodeEcc::High, 5, 5, Some(2), false).unwrap(); let chrs: Vec<char> = "3141592653589793238462643383".chars().collect();
for y in 0 .. qr1.size() { let segs = QrSegment::make_segments(&chrs);
for x in 0 .. qr1.size() { let qr1 = QrCode::encode_segments_advanced(
(... paint qr1.get_module(x, y) ...) &segs, QrCodeEcc::High, 5, 5, Some(2), false).unwrap();
} for y in 0 .. qr1.size() {
for x in 0 .. qr1.size() {
(... paint qr1.get_module(x, y) ...)
} }
}
```
License License
------- -------

Loading…
Cancel
Save