android - 16 - qr

13
QR Олег Годовых

Upload: noveo

Post on 05-Dec-2014

220 views

Category:

Technology


7 download

DESCRIPTION

QR codes

TRANSCRIPT

Page 1: Android - 16 - QR

QR

Олег Годовых

Page 2: Android - 16 - QR

QR

Quick Response Code

2 QR

Page 3: Android - 16 - QR

QR

В QR может находиться:I Текст.I Ссылка на сайт.I Визитка.I Шаблон SMS.I Номер телефона.I Геолокация.I Событие.I Шаблон e-mail.I Доступ к wi-fi (без паспорта!).

3 QR

Page 4: Android - 16 - QR

QR

В QR может находиться:I До 7089 цифр.I До 4296 символов.I До 2953 байтов.I До 1817 иероглифов.

4 QR

Page 5: Android - 16 - QR

QR

5 QR

Page 6: Android - 16 - QR

QR

QR корректирует ошибки

6 QR

Page 7: Android - 16 - QR

QR

QR может выглядеть очень разнообразно

7 QR

Page 8: Android - 16 - QR

QR

8 QR

Page 9: Android - 16 - QR

Библиотеки

I Zebra Crossing — библиотека от Google для обработкиразличных 1D/2D кодов.

I ZBar — библиотека для распознавания различных 1D/2Dкодов.

I Barcode Scanner — библиотека с удобной интеграциейZXing и ZBar для Android.

9 QR

Page 10: Android - 16 - QR

Работа с библиотеками

Кодирование в ZXingQRCodeWriter writer = new QRCodeWriter();BitMatrix matrix = writer.encode("EXAMPLE", BarcodeFormat.QR_CODE, QR_WIDTH,

QR_HEIGHT);Bitmap bmp = Bitmap.createBitmap(QR_WIDTH, QR_HEIGHT, Bitmap.Config.RGB_565);for (int x = 0; x < QR_WIDTH; x++){

for (int y = 0; y < QR_HEIGHT; y++){bmp.setPixel(x, y, matrix.get(x,y) ? Color.BLACK : Color.WHITE);

}}ImageView view = (ImageView)findViewById(R.id.qr);view.setImageBitmap(bmp);

10 QR

Page 11: Android - 16 - QR

Работа с библиотеками

Декодирование в ZBarImageScanner scanner = new ImageScanner();scanner.setConfig(0, Config.X_DENSITY, 3);scanner.setConfig(0, Config.Y_DENSITY, 3);

private Camera.PreviewCallback previewCb = new Camera.PreviewCallback() {public void onPreviewFrame(byte[] data, Camera camera) {

Camera.Parameters parameters = camera.getParameters();Camera.Size size = parameters.getPreviewSize();Image barcode = new Image(size.width, size.height, "Y800");barcode.setData(data);int result = scanner.scanImage(barcode);

if (result != 0) {previewing = false;mCamera.setPreviewCallback(null);mCamera.stopPreview();SymbolSet syms = scanner.getResults();for (Symbol sym : syms) {

String text = sym.getData();// do something

}}

}};

11 QR

Page 12: Android - 16 - QR

Работа с библиотекамиДекодирование в Barcode Scannerpublic class Scan extends Activity implements ZXingScannerView.ResultHandler {

private ZXingScannerView mScannerView;

@Overridepublic void onCreate(Bundle state) {

super.onCreate(state);mScannerView = new ZXingScannerView(this);setContentView(mScannerView);

}

@Overridepublic void onResume() {

super.onResume();mScannerView.setResultHandler(this);mScannerView.startCamera();

}

@Overridepublic void onPause() {

super.onPause();mScannerView.stopCamera();

}

@Overridepublic void handleResult(Result rawResult) {

// Do something with the result hereLog.v(TAG, rawResult.getText());Log.v(TAG, rawResult.getBarcodeFormat().toString());

}}

12 QR

Page 13: Android - 16 - QR

Полезные ссылки

I http://www.qrhacker.comI http://github.com/dm77/barcodescannerI http://www.swetake.com/qrcode/qr1_en.htmlI http://research.swtch.com/qart

13 QR