示例#1
0
 private void DoQrToBin(string filename)
 {
     try
     {
         var fileStream = File.OpenRead(filename);
         var img = Image.FromStream(fileStream);
         var bmp = new Bitmap(img);
         fileStream.Close();
         var binary = new BinaryBitmap(new HybridBinarizer(new RGBLuminanceSource(bmp, bmp.Width, bmp.Height)));
         var reader = new QRCodeReader();
         var result = reader.decode(binary);
         var resultList = (ArrayList)result.ResultMetadata[ResultMetadataType.BYTE_SEGMENTS];
         if (resultList == null)
         {
             File.WriteAllBytes(filename + ".txt", Encoding.UTF8.GetBytes(result.Text));
             System.Diagnostics.Process.Start(filename + ".txt");
             txtQRText.Text = result.Text;
         }
         else
             File.WriteAllBytes(filename + ".bin", (byte[]) resultList[0]);
     }
     catch (ReaderException ex)
     {
         MessageBox.Show(@"Error Loading:" + Environment.NewLine + ex.Message);
     }
 }
示例#2
0
        private void OnPhotoCameraInitialized(object sender, CameraOperationCompletedEventArgs e)
        {
            int width = Convert.ToInt32(_photoCamera.PreviewResolution.Width);
            int height = Convert.ToInt32(_photoCamera.PreviewResolution.Height);
            
            _luminance = new PhotoCameraLuminanceSource(width, height);
            _reader = new QRCodeReader();

            Dispatcher.BeginInvoke(() => {
                _previewTransform.Rotation = _photoCamera.Orientation;
                _timer.Start();
            });
        }
示例#3
0
        private void OnPhotoCameraInitialized(object sender, CameraOperationCompletedEventArgs e)
        {
            Dispatcher.BeginInvoke(() =>
            {
                _timer = new DispatcherTimer();
                _timer.Interval = TimeSpan.FromMilliseconds(250);
                _timer.Tick += (o, arg) => ScanPreviewBuffer();

                int width = Convert.ToInt32(_photoCamera.PreviewResolution.Width);
                int height = Convert.ToInt32(_photoCamera.PreviewResolution.Height);

                _luminance = new PhotoCameraLuminanceSource(width, height);
                _reader = new QRCodeReader();
            });

            Dispatcher.BeginInvoke(() =>
            {
                _previewTransform.Rotation = _photoCamera.Orientation;
                _timer.Start();
            });
        }
示例#4
0
        private bool stopCamera()
        {
            if (_photoCamera == null)
            {
                return false;
            }
            _timer.Stop();
            _timer = null;
            _luminance = null;
            _reader = null;
            _photoCamera.Dispose();
            _photoCamera = null;

            return true;
        }
 private void openQRCodeToolStripMenuItem_Click(object sender, EventArgs e)
 {
     var ofd = new OpenFileDialog { Filter = "All Supported|*.png;*.jpg;*.bmp;*.gif|PNG Files|*.png|Jpeg Files|*.jpg|Bitmap Files|*.bmp|GIF Files|*.gif" };
     if (ofd.ShowDialog() != DialogResult.OK) return;
     try
     {
         var file = new FileStream(ofd.FileName, FileMode.Open);
         var bmp = new Bitmap(Image.FromStream(file));
         file.Close();
         var binary = new BinaryBitmap(new HybridBinarizer(new RGBLuminanceSource(bmp, bmp.Width, bmp.Height)));
         var reader = new QRCodeReader();
         var hashtable = new Hashtable();
         hashtable.Add(DecodeHintType.POSSIBLE_FORMATS,BarcodeFormat.QR_CODE);
         hashtable.Add(DecodeHintType.TRY_HARDER,true);
         var result = reader.decode(binary, hashtable);
         var byteArray = (byte[])((ArrayList)result.ResultMetadata[ResultMetadataType.BYTE_SEGMENTS])[0];
         load_QR_data(byteArray);
     }
     catch (ReaderException ex)
     {
         MessageBox.Show("Error Loading:" + Environment.NewLine + ex.Message);
     }
     catch (InvalidOperationException ex)
     {
         MessageBox.Show("Error Loading:" + Environment.NewLine + ex.Message);
     }
 }
示例#6
0
        private void OnPhotoCameraInitialized(object sender, CameraOperationCompletedEventArgs e)
        {
            int width = Convert.ToInt32(PhotoCamera.PreviewResolution.Width);
            int height = Convert.ToInt32(PhotoCamera.PreviewResolution.Height);

            luminance = new PhotoCameraLuminanceSource(width, height);
            qrReader = new QRCodeReader();
            ean13Reader = new EAN13Reader();
            code39Reader = new Code39Reader();

            timer = new Timer((s) => ScanPreviewBuffer(), null, 0, 250);
        }
示例#7
0
 public void StopScanning()
 {
     if (IsScanning)
     {
         IsScanning = false;
         _reader = null;
     }
 }
示例#8
0
 /// <summary>
 /// Starts or restarts actively scanning the camera's preview buffer
 /// for a two-dimensional barcode.
 /// </summary>
 public void StartScanning()
 {
     if (!IsScanning && _initialized)
     {
         _reader = new QRCodeReader();
         IsScanning = true;
         Scan();
     }
 }
示例#9
0
        void decoder_DoWork(object sender, DoWorkEventArgs e)
        {
            Bitmap bmp = (Bitmap)e.Argument;
            QRCodeReader reader = new QRCodeReader();
            RGBLuminanceSource source = new RGBLuminanceSource(bmp, bmp.Width, bmp.Height);

            BinaryBitmap binDecode = new BinaryBitmap(new HybridBinarizer(source));

            String decodedString = "";
            Result result;
            try
            {
                result = (Result)reader.decode(binDecode);
                decodedString = result.Text;
            }
            catch (ReaderException)
            {
                decodedString = "";
            }

            if (decodedString == "")
            {
                toolStripStatusLabel1.Text = "Scan a Player ID";
            }
            else
            {
                String[] items = (decodedString).Split('|');

                this.Invoke((MethodInvoker)delegate//run on UI thread
                {
                    label_Name.Text = "Name: " + items[0];
                    label_Kill.Text = "Kill ID: " + items[1];
                    toolStripStatusLabel1.Text = "Decoded";
                });
            }
        }
示例#10
0
        //camera setup
        void cam_Initialized(object sender, CameraOperationCompletedEventArgs e)
        {
            try
            {
                int width = Convert.ToInt32(_cam.PreviewResolution.Width);
                int height = Convert.ToInt32(_cam.PreviewResolution.Height);

                _luminance = new PhotoCameraLuminanceSource(width, height);
                _reader = new QRCodeReader();

                _cam.FlashMode = FlashMode.Auto;
                _cam.Focus();
            }
            catch
            {
                //Throws an exception if the camera is disposed while this method is being called
            }
        }
示例#11
0
 private void menuQRCodeRead_Click(object sender, EventArgs e)
 {
     var ofd = new OpenFileDialog { Filter = @"All Supported|*.png;*.jpg;*.bmp;*.gif|PNG Files|*.png|Jpeg Files|*.jpg|Bitmap Files|*.bmp|GIF Files|*.gif" };
     if (ofd.ShowDialog() != DialogResult.OK) return;
     try
     {
         var bmp = new Bitmap(Image.FromFile(ofd.FileName));
         var binary = new BinaryBitmap(new HybridBinarizer(new RGBLuminanceSource(bmp, bmp.Width, bmp.Height)));
         var reader = new QRCodeReader();
         var result = reader.decode(binary);
         var byteArray = (byte[])((ArrayList)result.ResultMetadata[ResultMetadataType.BYTE_SEGMENTS])[0];
         var ms = new MemoryStream(byteArray);
         gridControl.LevelData.Read(ms);
         ms.Close();
         DataToGui();
     }
     catch (ReaderException ex)
     {
         MessageBox.Show(@"Error Loading:" + Environment.NewLine + ex.Message);
     }
 }
示例#12
0
 public void StopScanning()
 {
     if (IsScanning)
     {
         IsScanning = false;
         _reader = null;
         UninitializePhotoCamera();
     }
 }