public MainWindow()
        {
            InitializeComponent();
            try
            {
                Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();
                ofd.ShowDialog();

                System.Drawing.Bitmap bi = new System.Drawing.Bitmap(ofd.FileName);
                //System.Drawing.Bitmap bi =  Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();
                Decoder = new QRDecoder();

                // call image decoder methos with <code>Bitmap</code> image of QRCode barcode
                byte[][] DataByteArray = Decoder.ImageDecoder(bi);
                // convert binary result to text string

                MessageBox.Show(DataByteArray.GetLength(0).ToString());// + "\n" + DataByteArray.GetLength(1).ToString());
                string Result = ByteArrayToStr(DataByteArray[0]);

                // string Result = ByteArrayToStr(DataByteArray[Index]);


                MessageBox.Show(Result);
                Clipboard.SetText(Result);
                QRoutput.Content = (Result);
                webbrowser.Navigate(Result);
            }
            catch (Exception ex)
            {
                MessageBox.Show("This QR code is incorrect or incomplete\n" + ex.Message);
            }
        }
示例#2
0
        public static string getQRCode(string path)
        {
            try
            {
                // create QR Code decoder object
                QRDecoder Decoder = new QRDecoder();
                Bitmap    image   = (Bitmap)Image.FromFile(path, true);

                // call image decoder methos with <code>Bitmap</code> image of QRCode barcode
                byte[][] DataByteArray = Decoder.ImageDecoder(image);

                // get the ECI Assignment value
                //var ECIValue = Decoder.ECIAssignValue;
                //ECIValue = Decoder.ECIAssignValue;
                //if (ECIValue == -1)
                //{
                //    // Assignment value not defined
                //}
                //else
                //{
                //    // Assignment value between 0 to 999999
                //}
                string Result = ByteArrayToStr(DataByteArray[0]);
                return(Result);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
示例#3
0
文件: Form1.cs 项目: hdf/QRSnap
        private void Scan()
        {
            if (ClientSize.Width == 0 || QRCodeDecoder == null)
            {
                return;
            }
            if (QRCodeInputImage != null)
            {
                QRCodeInputImage.Dispose();
            }
            int w = this.ClientRectangle.Width;
            int h = this.ClientRectangle.Height;
            int l = this.Left + (this.Width - w) / 2;
            int t = this.Top + (this.Height - h - l + this.Left);

            //this.Opacity = 0;
            textBox1.Text      = "";
            textBox1.BackColor = System.Drawing.Color.Gray;
            QRCodeInputImage   = new Bitmap(w, h);
            using (Graphics g = Graphics.FromImage(QRCodeInputImage))
                g.CopyFromScreen(l, t, 0, 0, QRCodeInputImage.Size, CopyPixelOperation.SourceCopy);
            //pictureBox1.Image = QRCodeInputImage;
            byte[][] DataByteArray = QRCodeDecoder.ImageDecoder(QRCodeInputImage);
            textBox1.Text = QRDecoder.QRCodeResult(DataByteArray);
            if (textBox1.Text != "")
            {
                textBox1.BackColor = System.Drawing.Color.White;
                System.Windows.Forms.Clipboard.SetText(textBox1.Text);
            }
            //this.Opacity = 100;
        }
        public static string GetQRCode(Bitmap imageToSearch)
        {
            //IL_000f: Unknown result type (might be due to invalid IL or missing references)
            //IL_0015: Expected O, but got Unknown
            //IL_0016: Unknown result type (might be due to invalid IL or missing references)
            //IL_001d: Expected O, but got Unknown
            //IL_001f: Unknown result type (might be due to invalid IL or missing references)
            //IL_0029: Expected O, but got Unknown
            //IL_0024: Unknown result type (might be due to invalid IL or missing references)
            //IL_002b: Expected O, but got Unknown
            //IL_0048: Unknown result type (might be due to invalid IL or missing references)
            //IL_004f: Expected O, but got Unknown
            if (false)
            {
                Dictionary <DecodeHintType, object> dictionary = new Dictionary <DecodeHintType, object>();
                QRCodeReader          val  = new QRCodeReader();
                BitmapLuminanceSource val2 = new BitmapLuminanceSource(imageToSearch);
                BinaryBitmap          val3 = new BinaryBitmap(new HybridBinarizer(val2));
                Result val4 = val.decode(val3);
                return((val4 != null) ? val4.Text : null);
            }
            QRDecoder val5 = new QRDecoder();

            byte[][] array = val5.ImageDecoder(imageToSearch);
            if (array == null)
            {
                return(null);
            }
            if (array.GetLength(0) > 0)
            {
                return(Encoding.UTF8.GetString(array[0]));
            }
            return(null);
        }
示例#5
0
 public string Decode ( Image QR )
 {
     QRDecoder Decoder = new QRDecoder();
     byte [] [] Data = Decoder.ImageDecoder( (Bitmap) QR );
     if (Data == null)
         return null;
     string code = QRCode.ByteArrayToStr( Data [0] );
     return code;
 }
        private void OnLoadImage(object sender, EventArgs e)
        {
            // get file name to decode
            OpenFileDialog Dialog = new OpenFileDialog
            {
                Filter           = "Image Files(*.png;*.jpg;*.gif;*.tif)|*.png;*.jpg;*.gif;*.tif;*.bmp)|All files (*.*)|*.*",
                Title            = "Load QR Code Image",
                InitialDirectory = Directory.GetCurrentDirectory(),
                RestoreDirectory = true,
                FileName         = string.Empty
            };

            // display dialog box
            if (Dialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            // clear parameters
            ImageFileLabel.Text = Dialog.FileName;

            // disable buttons
            LoadImageButton.Enabled = false;

            // dispose previous image
            if (QRCodeInputImage != null)
            {
                QRCodeInputImage.Dispose();
            }

            // load image to bitmap
            QRCodeInputImage = new Bitmap(Dialog.FileName);

            // trace
                #if DEBUG
            QRCodeTrace.Format("****");
            QRCodeTrace.Format("Decode image: {0} ", Dialog.FileName);
            QRCodeTrace.Format("Image width: {0}, Height: {1}", QRCodeInputImage.Width, QRCodeInputImage.Height);
                #endif

            // decode image
            byte[][] DataByteArray = QRCodeDecoder.ImageDecoder(QRCodeInputImage);

            // display ECI value
            ECIValueLabel.Text = QRCodeDecoder.ECIAssignValue >= 0 ? QRCodeDecoder.ECIAssignValue.ToString() : null;

            // convert results to text
            DataTextBox.Text = QRCodeResult(DataByteArray);

            // enable buttons
            LoadImageButton.Enabled = true;

            // force repaint
            Invalidate();
            return;
        }
示例#7
0
文件: Form1.cs 项目: rosen1997/USP
        private void BTN_scan_Click(object sender, EventArgs e)
        {
            QRDecoder QRCodeDecoder = new QRDecoder();

            byte[][] DataByteArray = QRCodeDecoder.ImageDecoder((Bitmap)pictureBox1.Image);
            try
            {
                string Result = QRCode.ByteArrayToStr(DataByteArray[0]);
                //LBL_test.Text = Result;
            }
            catch { MessageBox.Show("Could not detect QR code!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }
示例#8
0
 private static void DecodeQrCode()
 {
     try
     {
         Image     image   = Image.Load("C:\\dev\\image4_out.jpg");
         QRDecoder decoder = new QRDecoder();
         var       qrCode  = decoder.ImageDecoder(image);
     }
     catch (Exception)
     {
         // handle exception here;
     }
 }
示例#9
0
        public void LoadFilexUnitTest()
        {
            string demoFilePath = HelperUnitTest.GetDemoFile("image2.jpg");

            using (Bitmap bitmap = new Bitmap(demoFilePath))
            {
                QRDecoder decoder = new QRDecoder();
                var       qrCode  = decoder.ImageDecoder(bitmap);
                Assert.NotNull(qrCode);
                Assert.NotNull(qrCode.Results);
                Assert.Single(qrCode.Results);
            }
        }
示例#10
0
 private static void test6()
 {
     try
     {
         using (Bitmap bitmap = new Bitmap("C:\\dev\\image4_out.jpg"))
         {
             QRDecoder decoder = new QRDecoder();
             var       qrCode  = decoder.ImageDecoder(bitmap);
             int       i       = 0;
         }
     }
     catch (Exception ex)
     {
         // handle exception here;
     }
 }
        private void QRCodeTimer_Tick(object sender, EventArgs e)
        {
            QRCodeTimer.Enabled = false;
            Bitmap QRCodeImage;

            try
            {
                QRCodeImage = VideoCamera.SnapshotSourceImage();

                // trace
                        #if DEBUG
                QRCodeTrace.Format("Image width: {0}, Height: {1}", QRCodeImage.Width, QRCodeImage.Height);
                        #endif
            }

            catch (Exception EX)
            {
                DataTextBox.Text    = "Decode exception.\r\n" + EX.Message;
                QRCodeTimer.Enabled = true;
                return;
            }

            // decode image
            byte[][] DataByteArray = Decoder.ImageDecoder(QRCodeImage);
            string   Text          = QRCodeResult(DataByteArray);

            // dispose bitmap
            QRCodeImage.Dispose();

            // we have no QR code
            if (Text.Length == 0)
            {
                QRCodeTimer.Enabled = true;
                return;
            }

            VideoCamera.PauseGraph();

            DataTextBox.Text    = Text;
            ResetButton.Enabled = true;
            if (IsValidUri(DataTextBox.Text))
            {
                GoToUriButton.Enabled = true;
            }
            return;
        }
示例#12
0
        public Store ReadQR(string name)
        {
            string imagePath = Utils.GetStoresPath() + name;
            Bitmap image     = new Bitmap(imagePath);

            var    data       = _QRdecoder.ImageDecoder(image);
            string jsonObject = QRCode.ByteArrayToStr(data[0]);

            QRStore qrStore = JsonConvert.DeserializeObject <QRStore>(jsonObject);

            Store store = new Store(qrStore.idStore, qrStore.storeName);

            store.products = ConvertProductListToStoreProductList(qrStore.products);
            image.Dispose();

            return(store);
        }
示例#13
0
        public MainWindow()
        {
            InitializeComponent();
            System.Drawing.Bitmap bi = new System.Drawing.Bitmap("qr2.png");

            Decoder = new QRDecoder();

            // call image decoder methos with <code>Bitmap</code> image of QRCode barcode
            byte[][] DataByteArray = Decoder.ImageDecoder(bi);
            // convert binary result to text string

            MessageBox.Show(DataByteArray.GetLength(0).ToString());// + "\n" + DataByteArray.GetLength(1).ToString());
            string Result = ByteArrayToStr(DataByteArray[0]);

            // string Result = ByteArrayToStr(DataByteArray[Index]);

            MessageBox.Show(Result);
            Clipboard.SetText(Result);
        }
        private string DecodeQRCode(Image image)
        {
            // create QR Code decoder object
            QRDecoder Decoder = new QRDecoder();

            // call image decoder methos with <code>Bitmap</code> image of QRCode barcode
            byte[][] DataByteArray = Decoder.ImageDecoder((Bitmap)image);

            // get the ECI Assignment value
            int ECIValue = Decoder.ECIAssignValue;

            if (ECIValue == -1)
            {
                // Assignment value not defined
            }
            else
            {
                // Assignment value between 0 to 999999
            }
            return(QRCodeResult(DataByteArray));
        }
示例#15
0
        public bool validateTicket(BitmapImage img)
        {
            QRDecoder     decoder = new QRDecoder();
            BitmapEncoder encoder = new BmpBitmapEncoder();

            Byte[][] res;
            string   result = "";

            try
            {
                encoder.Frames.Add(BitmapFrame.Create(img));
                System.IO.MemoryStream outStream = new System.IO.MemoryStream();
                encoder.Save(outStream);
                System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(outStream);

                res = decoder.ImageDecoder(bitmap);
                foreach (byte[] temp in res)
                {
                    result = QRCode.ByteArrayToStr(temp);
                }
            }
            catch
            {
                return(false);
            }
            int    id = Int32.Parse(result);
            Ticket t  = en.Tickets.Where(x => x.TicketID == id).FirstOrDefault();

            if (t == null)
            {
                return(false);
            }
            DateTime ticketDate = (DateTime)t.TicketDate;

            if (DateTime.Now.DayOfYear - ticketDate.DayOfYear != 0 || t.TicketStatus == "Deleted")
            {
                return(false);
            }
            return(true);
        }
示例#16
0
文件: Form1.cs 项目: rosen1997/USP
        private void buttonLess()
        {
            int flag = 0;

            for (int i = 0; i < 20; i++)
            {
                QRDecoder QRCodeDecoder = new QRDecoder();
                byte[][]  DataByteArray = QRCodeDecoder.ImageDecoder((Bitmap)pictureBox1.Image);
                try
                {
                    string Result = QRCode.ByteArrayToStr(DataByteArray[0]);
                    int    ID;
                    int.TryParse(Result, out ID);
                    flag = 1;

                    dbControl oDB = new dbControl(ID);
                    try
                    {
                        oDB.connectToDB();
                        oDB.writeToDB();
                        oDB.closeConnection();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }

                    break;
                }
                catch { }
                wait(500);
            }
            if (flag == 0)
            {
                MessageBox.Show("Could not detect QR", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }
示例#17
0
        public override Store Decode(Image QR)
        {
            QRDecoder Decoder = new QRDecoder();

            byte [] [] Data = Decoder.ImageDecoder((Bitmap)QR);
            if (Data == null)
            {
                return(null);
            }
            string code = QRCode.ByteArrayToStr(Data [0]);

            if (Check(code))
            {
                StoreJBuilder builder  = new StoreJBuilder(code);
                StoreDirector director = new StoreDirector();
                director.Construct(builder);
                Store s = builder.GetStore();
                return(s);
            }
            else
            {
                return(null);
            }
        }