九州ドットネット倶楽部別館

facebook 九州ドットネット倶楽部の別館となります。https://www.facebook.com/groups/301814289891768/ ...現在ほぼ管理人の開発備忘録化しています。

Windows Phone 7 Silverlight ZXing Barcode Scanning Library その2

詳しい解説サイトがないですね。
しょうがないので本家を解読してみようかと。

Windows Phone 7 Silverlight ZXing Barcode Scanning Library

なるほどソースもダウンロードできるのか。


おやっ、サンプルでエラー発生

警告 1 参照コンポーネント 'Microsoft.Phone.Controls.Toolkit' が見つかりませんでした。

Windows Phone ToolkitのPhoneTextBoxを使ってみる - 遅咲きのエンジニア
ここをを参考にToolkitをインストールした。

Silverlight Toolkit

これね。


んー、なんかやっぱよくわからんしー、
ほんでもってやっぱりVBでやりたいので、ほかのサイトのソースをコンバータを使って変換した。
sub のとこをfunctionと変換されてしまってずいぶんはまってしまったが、
とりあえずVBでも動くようになった。

Imports WP7_Barcode_Library

Partial Public Class MainPage
    Inherits PhoneApplicationPage

    ' コンストラクター
    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
        Dim task = New Microsoft.Phone.Tasks.CameraCaptureTask()
        'task.Completed += New EventHandler(Of Microsoft.Phone.Tasks.PhotoResult)(task_Completed)


        AddHandler task.Completed, AddressOf task_Completed

        task.Show()
    End Sub




    Private Sub task_Completed(sender As Object, e As Microsoft.Phone.Tasks.PhotoResult)
        If e.TaskResult <> Microsoft.Phone.Tasks.TaskResult.OK Then
            Return
        End If

        ' 取り込んだ画像をBitmapImageへセット
        Dim bitmap = New System.Windows.Media.Imaging.BitmapImage()
        bitmap.SetSource(e.ChosenPhoto)

        ' QR Code 2D barcodeの解析を行う
        ' ほかに設定できるバーコードの種類は、
        '     MultiReader for all 1D barcode types.
        '     Code 128 1D format.
        '     Code 39 1D format.
        '     DataMatrix 2D barcode format.
        '     EAN-13 1D format.
        '     EAN-8 1D format.
        '     ITF (Interleaved Two of Five) 1D format.
        '     PDF417 format.
        '     QR Code 2D barcode format.
        '     UPC-A 1D format.
        '     UPC-E 1D format.
        '     MultiReader for all UPC and EAN types.
        'WP7BarcodeManager.ScanMode = com.google.zxing.BarcodeFormat.QR_CODE;
        WP7BarcodeManager.ScanMode = com.google.zxing.BarcodeFormat.ALL_1D
        WP7BarcodeManager.ScanBarcode(bitmap, Sub(res)
                                                  If res.State <> WP7_Barcode_Library.CaptureState.Success Then
                                                      MessageBox.Show(res.ErrorMessage)
                                                  Else
                                                      MessageBox.Show(res.BarcodeText)
                                                  End If

                                              End Sub)
    End Sub

 
End Class

元ネタはこちらです。
ありがとうございます。
ZXing Barcode Scanning Libraryを使ってバーコードを読み込む(Windows Phone OS 7.0) – CH3COOH(酢酸)の実験室

WP7_Barcode_LibraryはSilverlight_ZXing_Coreをラップしてるっぽいですね。
よくわからんけど。


つぎはこちらをやってみようと思います。

ZXing Barcode Scanning Libraryを使ってバーコードを読み込む(Windows Phone OS 7.1 ~) – CH3COOH(酢酸)の実験室