QRGen

a simple QRCode generation api for java built on top ZXING

  • 所有者: kenglxn/QRGen
  • 平台:
  • 許可證:
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Build Status
Release

QRGen: a simple QRCode generation api for java built on top ZXING

Please consider sponsoring 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. QRGen is no longer deployed to maven central (ref: #61).
Older releases are available from Maven Central Repository.

Maven:

    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

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:

    dependencies {
        compile 'com.github.kenglxn.QRGen:javase:2.6.0'
    }

Maven:

    <dependencies>
        <dependency>
            <groupId>com.github.kenglxn.qrgen</groupId>
            <artifactId>javase</artifactId>
            <version>2.6.0</version>
        </dependency>
    </dependencies>
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:

    dependencies {
        compile 'com.github.kenglxn.QRGen:android:2.6.0'
    }

Maven:

    <dependencies>
        <dependency>
            <groupId>com.github.kenglxn.qrgen</groupId>
            <artifactId>android</artifactId>
            <version>2.6.0</version>
        </dependency>
    </dependencies>

Or you can clone and build yourself:

    git clone git://github.com/kenglxn/QRGen.git
    cd QRGen/
    mvn clean install

Usage:

// 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(outputStream);

// 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("john.doe@example.org")
                    .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("John.Doe@example.org");
QRCode.from(email).file();

// encode mms data
MMS mms = new MMS("Hello World");
QRCode.from(mms).file();

// encode sms data
SMS sms = new SMS("Hello World");
QRCode.from(sms).file();

// encode MeCard data
MeCard johnDoe = new MeCard("John Doe");
johnDoe.setEmail("john.doe@example.org");
johnDoe.setAddress("John Doe Street 1, 5678 Doestown");
johnDoe.setTelephone("1234");
QRCode.from(johnDoe).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();

// QRGen currently supports the following schemas:
// - BizCard
// - Bookmark
// - Email
// - GeoInfo
// - Girocode
// - GooglePlay
// - ICal
// - KddiAu
// - MMS
// - MeCard
// - SMS
// - Telephone
// - Url
// - VCard
// - Wifi
// - YouTube

Java SE only

When using java you can create svg files via .svg() terminal operator:

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:

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:

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

主要指標

概覽
名稱與所有者kenglxn/QRGen
主編程語言Java
編程語言Java (語言數: 1)
平台
許可證
所有者活动
創建於2012-01-13 06:58:29
推送於2023-11-22 08:48:26
最后一次提交2022-11-29 11:13:47
發布數13
最新版本名稱3.0.1 (發布於 )
第一版名稱1.2.0 (發布於 )
用户参与
星數1.5k
關注者數71
派生數298
提交數338
已啟用問題?
問題數102
打開的問題數8
拉請求數55
打開的拉請求數2
關閉的拉請求數8
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?