PR

UWP バーコードリーダー

CSharp用のアイキャッチ UWP

業務用アプリでバーコードリーダーが必要になったので今回はUWPで作成します。

スポンサーリンク

対象となる端末

カメラ付きのWindows10端末
今回は、Windows10 Mobileを利用しました。(先日サポート切れましたね)

テスト機はSurface pro4です。

いきなり問題発生

Visual Studio2019で開発を始めてみたんですが・・・
Windows10 Mobileはサポートされていませんでした。
なのでVisual Studio2017で開発開始です。久しぶりに使うと細かい操作が違うんですね。

開発開始

いろんなサイトを参照しながらプログラムです(ほぼコピペ)

バーコードリーダー自体はZxingを利用するのでお手軽です。

画面の取り込み - UWP applications
Windows.Graphics.Capture 名前空間 には、ディスプレイまたはアプリケーション ウィンドウからフレームを取得する API が用意されています。これにより、ビデオ ストリームやスナップショットを作成して、コラボレーティブ...

完成!!

バーコードの読み取りが遅い・・・

実際にいろいろな機能と合わせて利用してみたんですが、キャプチャ画面から読込までに予想より時間がかかります。
バーコードにピントが合ってから・・・1秒くらい?待たされます。
連続して使用する場合思った以上にストレスになります。

改善策

今回のバーコードリーダーはCODE128を使用するので白黒の判定だけでOK
そこで

  • キャプチャした画像の二値化
  • キャプチャするエリアのトリミング
  • 読み込むバーコードFormatの固定

改善策は下の記事を読んでください

UWP SoftwareBitmap 二値化
備忘録今回は、調べた結果自力で解決です。コードはこちらvar buffer = new byte[4 * softwareBitmap.PixelWidth * softwareBitmap.PixelHeight];softwareBit...
UWP SoftwareBitmap 切抜き,トリミング
備忘録UWPの開発はなかなか参考サイトなど見つけにくいので備忘録MediaCaptureを使用してバーコードの読み取りアプリを開発中なんですが、どうにも読み取り完了までに時間がかかってしまう。そこで画像を切り抜いてからDecodeしたほうが...
UWP SoftwareBitmap 回転
備忘録またまた、調べるの大変なので備忘録画像を切り抜いたのはいいけど回転させたくなったので検索。コードがこちらpublic async static Task<SoftwareBitmap> SoftwareBitmapRotate(Sof...

結果

バーコードにピントが合った瞬間に取り込みが完了します。(満足)
ただし、二値化の方法が限定的なため、バーコードが淡い色だったりすると認識できません。
今回必要としないので気にしません。

今回のバーコード読込部分をgithubに置いときます。

GitHub - kiwamu25/BarcodeScanner: バーコード読取アプリ
バーコード読取アプリ. Contribute to kiwamu25/BarcodeScanner development by creating an account on GitHub.

コメント

タイトルとURLをコピーしました