基於ZXingAndroid實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能
NextQRCode ZXing開源庫的精簡版
**基於ZXing Android實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能
原文部落格 附原始碼下載地址**
與原ZXingMini專案對比
NextQRCode做了重大架構修改,原ZXingMini專案與當前NextQRCode不相容
dependencies {
compile `com.github.yoojia:next-qrcode:2.0-2`
...
}
生成二維碼圖案
// 二維碼中間圖示
final Bitmap centerImage = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
// 生成的二維碼圖案
Bitmap qrCodeImage = new QRCodeEncoder.Builder()
.width(size) // 二維碼圖案的寬度
.height(size)
.paddingPx(0) // 二維碼的內邊距
.marginPt(3) // 二維碼的外邊距
.centerImage(centerImage) // 二維碼中間圖示
.build()
.encode(content);
二維碼解碼
final QRCodeDecoder mDecoder = new QRCodeDecoder.Builder().build();
// 傳入二維碼圖案Bitmap物件然後解碼成文字內容
String content = mDecoder.decode(bitmap);
使用 LiveCameraView 自動掃描解碼
public class QRCodeScanActivity extends AppCompatActivity {
public static final String TAG = QRCodeScanActivity.class.getSimpleName();
private LiveCameraView mLiveCameraView;
private ImageView mCaptureImage;
private TextView mContentView;
private final CaptureCallback mCaptureCallback = new CaptureCallback() {
@Override public void onCaptured(Bitmap bitmap) {
Log.i(TAG, "-> Got bitmap, show to capture view");
mCaptureImage.setImageBitmap(bitmap);
Observable.just(bitmap)
.map(new Func1<Bitmap, String>() {
private final QRCodeDecoder mDecoder = new QRCodeDecoder.Builder().build();
@Override
public String call(Bitmap bitmap) {
return mDecoder.decode(bitmap);
}
})
.subscribeOn(Schedulers.computation())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<String>() {
@Override public void call(String content) {
mContentView.setText(content);
}
});
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_scan);
mCaptureImage = (ImageView) findViewById(R.id.capture_image);
mContentView = (TextView) findViewById(R.id.content);
mLiveCameraView = (LiveCameraView) findViewById(R.id.capture_preview_view);
mLiveCameraView.setPreviewReadyCallback(new CameraPreviewView.PreviewReadyCallback() {
@Override
public void onStarted(Camera camera) {
Log.i(TAG, "-> Camera started, start to auto capture");
mLiveCameraView.startAutoCapture(1500, mCaptureCallback);
}
@Override
public void onStopped() {
Log.i(TAG, "-> Camera stopped");
mLiveCameraView.stopAutoCapture();
}
});
}
}
**基於ZXing Android實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能
原文部落格 附原始碼下載地址**
相關文章
- 基於ZXing Android實現生成二維碼圖片和相機掃描二維碼圖片即時解碼的功能Android
- php生成二維碼圖片PHP
- Android 二維碼掃描和生成二維碼Android
- canvas實現二維碼和圖片合成Canvas
- PHP掃描圖片轉點陣 二維碼轉點陣PHP
- Android 生成帶圖片的二維碼Android
- PHP 修改圖片顏色(生成彩色二維碼)PHP
- Vue 微信端掃描二維碼,蘋果端只能儲存圖片解決方法Vue蘋果
- Android實現掃描二維碼Android
- Android二維碼生成與掃描Android
- iOS二維碼掃描iOS
- 生成帶二維碼圖片並通過微信分享
- apk 生成二維碼,手機掃碼即裝的便捷工具APK
- iOS開發-原生二維碼的掃描和生成iOS
- React Native 實現二維碼掃描React Native
- iOS中二維碼掃描iOS
- iOS 掃描二維碼/條形碼iOS
- ios打包 蒲公英生成二維碼掃描下載iOS
- Android 基於zxing的二維碼掃描功能的簡單實現及優化Android優化
- hyperf 生成二維碼並且轉為CMYK色彩通道的圖片
- 掃描二維碼登入思路
- 安卓自定義二維碼掃描安卓
- IOS 使用 ZbarSDK 二維碼掃描iOS
- Google zxing實現二維碼掃描完美解決方案Go
- 設定二維碼圖片背景透明教程
- java實現二維碼生成Java
- ubuntu安裝zbar二維碼掃描Ubuntu
- iOS開發之掃描二維碼iOS
- WebView實現長按儲存圖片 長按識別二維碼WebView
- iOS 花式二維碼生成和二維碼識別iOS
- 智慧公安二維碼報警系統研發解決方案-隨時隨地掃描二維碼
- 使用 jquery.qrcode.js 生成網站地址url二維碼圖片jQueryJS網站
- iOS 使用CIDetector掃描相簿二維碼、原生掃描iOSIDE
- PHP生成一張含有二維碼的圖片(文章末尾附程式碼下載連結)PHP
- 二維碼管理平臺 生成二維碼
- iOS 掃描二維碼(ZBarSDK)遇到的坑~解決方法iOS
- png圖片隱寫例項之隱藏二維碼
- zxing第三方框架實現二維碼掃描以及生成框架