Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kenglxn/QRGen
a simple QRCode generation api for java built on top ZXING
https://github.com/kenglxn/QRGen
Last synced: 2 months ago
JSON representation
a simple QRCode generation api for java built on top ZXING
- Host: GitHub
- URL: https://github.com/kenglxn/QRGen
- Owner: kenglxn
- Created: 2012-01-13T06:58:29.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2023-11-22T08:48:26.000Z (about 1 year ago)
- Last Synced: 2024-11-11T17:02:10.490Z (2 months ago)
- Language: Java
- Homepage: http://glxn.net/2012/03/10/qrgen-a-small-wrapper-on-top-of-zxing-for-generating-qrcodes-in-java
- Size: 672 KB
- Stars: 1,491
- Watchers: 73
- Forks: 300
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
- awesome-android-ui - https://github.com/kenglxn/QRGen
- awesome-android-ui - https://github.com/kenglxn/QRGen
README
[![Build Status](https://travis-ci.org/kenglxn/QRGen.png?branch=master)](https://travis-ci.org/kenglxn/QRGen)
[![Release](https://img.shields.io/github/tag/kenglxn/QRGen.svg?label=JitPack)](https://jitpack.io/#kenglxn/QRGen)### QRGen: a simple QRCode generation api for java built on top ZXING
Please consider [sponsoring](https://github.com/sponsors/kenglxn) the work on QRGen
#### Dependencies:
ZXING: http://code.google.com/p/zxing/
#### Get it:
QRGen consists of three modules: ```core```, ```javase``` and ```android```.
As of 2.1.0 QRGen is available from [jitpack.io](https://jitpack.io/#kenglxn/QRGen). QRGen is no longer deployed to maven central (ref: #61).
Older releases are available from [Maven Central Repository](http://search.maven.org/#browse%7C-852965118).As of 3.0.1 java 11 is required.
Latest java 8 version is 2.7.0.Maven:
```xml
jitpack.io
https://jitpack.io
```Gradle:
```gradle
allprojects {
repositories {
// ...
maven { url "https://jitpack.io" }
}
}
```##### Nexus proxy setup for jitpack
See https://github.com/jitpack/jitpack.io/issues/506 for solution.
(thanks to @LTheobald for the heads up)
#### Java Application
When developing a Java application you need to add ```javase``` module to your list of dependencies. The required ```core``` module will be added automatically by your build system:
Gradle:
```gradle
dependencies {
implementation 'com.github.kenglxn.QRGen:javase:3.0.1'
}
```Maven:
```xml
com.github.kenglxn.QRGen
javase
3.0.1
```##### Android
When you want to use QRGen inside your android application you need to add the ```android``` module to your list of dependencies. The required ```core``` module will be added automatically by your build system:
Gradle:
```gradle
dependencies {
implementation 'com.github.kenglxn.QRGen:android:3.0.1'
}
```Maven:
```xml
com.github.kenglxn.QRGen
android
3.0.1
```Or you can clone and build yourself:
```bash
git clone git://github.com/kenglxn/QRGen.git
cd QRGen/
mvn clean install
```#### Usage:
```java
public class Demo {
public static void main(String[] args) {
// get QR file from text using defaults
File file = QRCode.from("Hello World").file();// get QR stream from text using defaults
ByteArrayOutputStream stream = QRCode.from("Hello World").stream();// override the image type to be JPG
QRCode.from("Hello World").to(ImageType.JPG).file();
QRCode.from("Hello World").to(ImageType.JPG).stream();// override image size to be 250x250
QRCode.from("Hello World").withSize(250, 250).file();
QRCode.from("Hello World").withSize(250, 250).stream();// override size and image type
QRCode.from("Hello World").to(ImageType.GIF).withSize(250, 250).file();
QRCode.from("Hello World").to(ImageType.GIF).withSize(250, 250).stream();// override default colors (black on white)
// notice that the color format is "0x(alpha: 1 byte)(RGB: 3 bytes)"
// so in the example below it's red for foreground and yellowish for background, both 100% alpha (FF).
QRCode.from("Hello World").withColor(0xFFFF0000, 0xFFFFFFAA).file();// supply own outputstream
QRCode.from("Hello World").to(ImageType.PNG).writeTo(new ByteArrayOutputStream());// supply own file name
QRCode.from("Hello World").file("QRCode");// supply charset hint to ZXING
QRCode.from("Hello World").withCharset("UTF-8");// supply error correction level hint to ZXING
QRCode.from("Hello World").withErrorCorrection(ErrorCorrectionLevel.L);// supply any hint to ZXING
QRCode.from("Hello World").withHint(EncodeHintType.CHARACTER_SET, "UTF-8");// encode contact data as vcard using defaults
VCard johnDoe = new VCard("John Doe")
.setEmail("[email protected]")
.setAddress("John Doe Street 1, 5678 Doestown")
.setTitle("Mister")
.setCompany("John Doe Inc.")
.setPhoneNumber("1234")
.setWebsite("www.example.org");
QRCode.from(johnDoe).file();// encode email data
EMail email = new EMail("[email protected]");
QRCode.from(email).file();// encode mms data
MMS mms = new MMS("8675309", "Hello Jenny");
QRCode.from(mms).file();// encode sms data
SMS sms = new SMS("8675309", "Hello Jenny");
QRCode.from(sms).file();// encode MeCard data
MeCard janeDoe = new MeCard("Jane Doe");
janeDoe.setEmail("[email protected]");
janeDoe.setAddress("John Doe Street 1, 5678 Doestown");
janeDoe.setTelephone("1234");
QRCode.from(janeDoe).file();// if using special characters don't forget to supply the encoding
VCard johnSpecial = new VCard("Jöhn Dɵe")
.setAddress("ëåäöƞ Sträät 1, 1234 Döestüwn");
QRCode.from(johnSpecial).withCharset("UTF-8").file();
}
}
```
#### Java SE onlyWhen using java you can create svg files via `.svg()` terminal operator:
```java
File file = QRCode.from("www.example.org").svg();
File file = QRCode.from("www.example.com").withSize(250, 250).withColor(30, 90).svg();
```It's also possible to write svg to an `OutputStream` with terminal operation:
```java
OutputStream outs = // ...
QRCode.from("www.example.org").svg(outs);
```#### Android only
On Android you have a special method `bitmap()` which returns a `android.graphics.Bitmap` without creating a `File` object before, so you can use the generated `android.graphics.Bitmap` immediately inside an `ImageView`:
```java
Bitmap myBitmap = QRCode.from("www.example.org").bitmap();
ImageView myImage = (ImageView) findViewById(R.id.imageView);
myImage.setImageBitmap(myBitmap);
```#### License:
http://www.apache.org/licenses/LICENSE-2.0.html