當前位置:首頁 » 安卓系統 » 安卓開發二維碼斜著怎麼識別

安卓開發二維碼斜著怎麼識別

發布時間: 2022-07-22 12:43:05

『壹』 android開發 如何實現掃描本地二維碼圖片

開源的二維碼掃描庫主要有zxing和zbar,zbar在iPos平台上應用比較成熟,而在Android平台上主流還是用zxing庫,因此這里主要講述如何利用zxing進行二維碼開發。

  • 如何將zxing的Android源碼導入工程。

    • 在導入zxing的android源碼之前,先去官方下載zxing的源碼http://code.google.com/p/zxing/downloads/list。

    • 這里以1.6版本為例,zxing 1.6源碼結構如下:


      <?xmlversion="1.0"encoding="utf-8"?>
      <manifestxmlns:android="http://schemas.android.com/apk/res/android"
      package="com.qrcode"
      android:versionCode="1"
      android:versionName="1.0">
      <uses-sdkandroid:minSdkVersion="7"/>

      <uses-permissionandroid:name="android.permission.VIBRATE"/><!--震動許可權-->
      <uses-permissionandroid:name="android.permission.CAMERA"/>
      <uses-featureandroid:name="android.hardware.camera"/><!--使用照相機許可權-->
      <uses-featureandroid:name="android.hardware.camera.autofocus"/><!--自動聚焦許可權-->
      <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
      <activityandroid:name=".MainActivity"
      android:label="@string/app_name">
      <intent-filter>
      <actionandroid:name="android.intent.action.MAIN"/>
      <categoryandroid:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
      </activity>

      <!--隱藏鍵盤--><!--全屏-->
      <activity
      android:configChanges="orientation|keyboardHidden"
      android:name="com.zxing.activity.CaptureActivity"
      android:screenOrientation="portrait"
      android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
      android:windowSoftInputMode="stateAlwaysHidden">
      </activity>
      </application>
      </manifest>

    • 這種情況大致就可以實現二維碼掃描了,想細化的話,還可以多看看安卓二維碼掃描開發相關的教程

『貳』 製作的二維碼為什麼傾斜手機角度才能掃出來

因為你的二維碼列印的不清晰或者材料反光造成的吧

『叄』 二維碼是怎麼讀取的求詳細

手機如何讀取二維碼
由於不同顏色的物體,其反射的可見光的波長不同,白色物體能反射各種波長的可見光,黑色物體則吸收各種波長的可見光。所以當攝像頭掃描黑白相間的二維碼上時,手機利用點運算的閾值理論將採集到的圖象變為二值圖像,即對圖像進行二值化處理,得到二值化圖像後,對其進行膨脹運算,對膨脹後的圖象進行邊緣檢測得到條碼區域的輪廓。
然後經過一項灰度值計算公式對圖像進行二值化處理。得到一幅標準的二值化圖像後,對該符號進行網格采樣,對網格每一個交點上的圖像像素取樣,並根據閾值確定是深色「1」還是淺色「0」,從而得到二維碼的原始二進制序列值,然後對這些數據進行糾錯和解碼,最後根據條碼的邏輯編碼規則把這些原始的數據轉換成數據。
三個大黑方塊起什麼作用呢?我們在使用手機掃描的時候無論是什麼方向,都能夠正確識別二維碼的內容,就是因為手機通過三個大黑方塊識別出二維碼正確的方向。
安卓開發一般使用開源框架ZXING。其操作一般經過以下幾個步驟:初始化相機,設置一些相機參數;綁定SurfaceView,在SurfaceView上顯示預覽圖像;獲取相機的一幀圖像;對圖像進行一定的預處理,只保留亮度信息,成為灰度圖像;對灰度圖像進行二維碼解析,解析成功進入下一步,不成功回到獲取圖像的操作過程;返回解析結果並退出。

『肆』 在android中怎麼識別二維碼

用開源框架 Zxing

我這有個demo


『伍』 安卓手機二維碼識別怎麼用

安卓手機一般都有自帶二維碼軟體的,但是貌似都一般好用啦
我都是用UC瀏覽器的二維碼功能的,打開瀏覽器之後用二維碼拍攝,就可以把電腦的網址直接讀進手機瀏覽器里,然後下載或瀏覽網頁什麼的,超爽~
求採納~

『陸』 android 二維碼掃描的時候,二維碼和屏幕的二位碼垂直,不一致,怎麼辦

CameraConfigurationManager 這個類 setDesiredCameraParameters 這個方法下if (toInt(android.os.Build.VERSION.SDK, DEFAULT_VERSION_VALUE) > 8) camera.setDisplayOrientation(90); // 設置相機角度 /** * 字元串轉整數 * * @param str * @param defValue * @return */ public static int toInt(String str, int defValue) { try { return Integer.parseInt(str); } catch (Exception e) { } return defValue; }

『柒』 android開發 怎麼識別網頁里的二維碼

通過zxing來掃描識別的,附件中有源代碼 zxing這個開源框架。

『捌』 Android二維碼識別源碼,可有多種實現方式

這里簡單介紹一下ZXing庫。ZXing是一個開放源碼的,用Java實現的多種格式的1D/2D條碼圖像處理庫,它包含了聯繫到其他語言的埠。Zxing可以實現使用手機的內置的攝像頭完成條形碼的掃描及解碼。該項目可實現的條形碼編碼和解碼。目前支持以下格式:UPC-A,UPC-E、EAN-8,EAN-13、39碼、93碼。ZXing是個很經典的條碼/二維碼識別的開源類庫,以前在功能機上,就有開發者使用J2ME運用ZXing了,不過要支持JSR-234規范(自動對焦)的手機才能發揮其威力。
下面是ZXing的demo運行,我這里創建了一個二維碼,內容是我博客的網址,大夥可以用微信的掃一掃功能,試一下。就可以直接打開我博客。

2、ZXing庫主要類
下面給大家介紹一下,ZXing庫裡面主要的類以及這些類的作用:
CaptureActivity。這個是啟動Activity 也就是掃描器。
CaptureActivityHandler 解碼處理類,負責調用另外的線程進行解碼。
DecodeThread 解碼的線程。
com.google.zxing.client.android.camera 包,攝像頭控制包。
ViewfinderView 自定義的View,就是我們看見的拍攝時中間的框框了。

3、使用ZXing生成二維碼
下面針對二維碼生成和解析做個簡單介紹,至於詳細的使用方法,建議大家還是自己看看源碼,使用起來很簡單,不過這個開源項目的代碼,值得好好看看。首先給出二維碼生成的方法:
View Code
上面就是二維碼生成的方法介面,如果你只是使用者方法,很簡單,只要傳入一個URL即可,就像我截圖裡面一樣,傳入一個合法的網址即可。或者像現在一些移動APP的推廣,把APP下載地址轉為二維碼,只要掃一下就可以下載相應的APP。這個也是目前比較流行的APP的推廣方式。
上面代碼做的事情不多,主要是調用ZXing庫裡面QRCodeWriter().encode的方法對我們傳進去的URL進行編碼,具體如何編碼,這個我這里就不詳細說,有興趣可以看ZXing的源碼。文章最後會給出ZXing的源碼和例子代碼。

4、掃描二維碼獲取信息
掃描獲取二維碼信息的工作稍微復雜一些,主要是需要編寫Camera的使用,這個跟我們一般使用Camera一樣,需要使用Surfaceview作為預覽,這一部我這里就不說了,這個應該不是太復雜。對於使用過Camera做預覽的朋友,應該是挺簡單的事情。獲取二維碼數據的關鍵處理是在Camera的自動對焦回調函數哪裡,調用ZXing的解碼介面。
View Code
這里稍微多說一句,由於解碼需要一定時間,所以ZXing的解碼調用,都是使用了Handler作為線程通信機制,解碼的工作都是放在獨立線程裡面使用的,如果你直接在主線程解碼,恐怕ANR問題是避免不了。
View Code
上面是解碼的線程處理不同狀態的時候需要注意的地方,我們這里只看獲取圖像成功的地方,成功獲取圖片解碼的實在DecodeThread裡面實現,DecodeThread裡面解碼成功後,會把數據序列化,然後保存到Bundle裡面,我們可以直接通過Bundle的序列化,獲取到圖片數據。同時會把解碼後的結果保存到MSG裡面,然後就可以根據實際情況進行處理,例如上面代碼,解碼成功後,會調用一個處理函數:
View Code
上面就是整個二維碼的解碼流程,裡面因為涉及很多Camera的使用,所以你如果需要使用二維碼識別,需要注意一下你的程序需要申請下面的許可權,一般的Camera使用以及Camera的自動對焦等。
View Code
5、結語
上面就是生成和識別二維碼的關鍵流程和代碼,有興趣的朋友可以自己查看ZXing的源碼,裡面有很多圖像分析的知識可以學習。具體使用也可以參考我下面給出的Demo。二維碼對於現在移動開發來說很是很常用的技術,所以有空可以了解一下,說不定什麼時候就用上了。另外,ZXing庫除了二維碼外,其實對於條形碼也是支持的,只是我這里沒有介紹。有需要的自己去看看源碼即可。
轉載

『玖』 安卓手機在微信中怎樣識別二維碼

可以通過長按圖片識別。

工具:安卓手機,微信4.0以上

步驟:

  1. 在手機上輸微信賬號及密碼登錄到自己的微信賬號;

  2. 登錄到微信賬號以後點擊打開一個聊天窗口,找到別人發送的二維碼圖片;

熱點內容
戰地4亞洲伺服器為什麼被攻擊 發布:2025-01-22 23:45:42 瀏覽:668
javascript反編譯 發布:2025-01-22 23:37:57 瀏覽:429
夏天來了你的巴氏奶存儲對嗎 發布:2025-01-22 23:37:56 瀏覽:203
求最大值c語言 發布:2025-01-22 23:22:35 瀏覽:247
一鍵清理系統腳本 發布:2025-01-22 23:21:10 瀏覽:59
防疫宣傳腳本 發布:2025-01-22 23:21:05 瀏覽:632
編譯程序編譯後是什麼語言 發布:2025-01-22 23:20:08 瀏覽:368
電腦文件夾設密碼 發布:2025-01-22 23:17:21 瀏覽:7
anyconnect伺服器地址2018 發布:2025-01-22 23:05:56 瀏覽:530
教師資格面試試講腳本 發布:2025-01-22 22:51:37 瀏覽:684