示例#1
0
        public void OnPreviewFrame(byte[] data, Android.Hardware.Camera camera)
        {
            try
            {
                System.Console.WriteLine("start create Image");
                yuvImage = new YuvImage(data, ImageFormatType.Nv21,
                                        previewWidth, previewHeight, null);

                stride = yuvImage.GetStrides();

                try
                {
                    if (isReady)
                    {
                        if (backgroundHandler != null)
                        {
                            isReady = false;
                            Message msg = new Message();
                            msg.What = 100;
                            msg.Obj  = yuvImage;
                            backgroundHandler.SendMessage(msg);
                        }
                    }
                }
                catch (BarcodeReaderException e)
                {
                    e.PrintStackTrace();
                }
            }
            catch (System.IO.IOException)
            {
            }
        }
示例#2
0
 public void OnPreviewFrame(byte[] data, Android.Hardware.Camera camera)
 {
     try
     {
         yuvImage = new YuvImage(data, ImageFormatType.Nv21,
                                 previewWidth, previewHeight, null);
         stride = yuvImage.GetStrides();
         try
         {
             if (isReady)
             {
                 if (backgroundHandler != null)
                 {
                     isReady = false;
                     Message msg = new Message();
                     msg.What = 100;
                     msg.Obj  = yuvImage;
                     backgroundHandler.SendMessage(msg);
                     backgroundHandler.Post(() =>
                     {
                         //tvResult.Text = result;
                     });
                 }
             }
         }
         catch (BarcodeReaderException e)
         {
             e.PrintStackTrace();
         }
     }
     catch (System.IO.IOException)
     {
     }
 }
示例#3
0
            public override void HandleMessage(Message msg)
            {
                if (msg.What == 100)
                {
                    Message msg1 = new Message();
                    msg1.What = 200;
                    msg1.Obj  = "";
                    try
                    {
                        YuvImage image = (YuvImage)msg.Obj;
                        if (image != null)
                        {
                            int[]        stridelist = image.GetStrides();
                            TextResult[] text       = barcodeReader.DecodeBuffer(image.GetYuvData(), previewWidth, previewHeight, stridelist[0], EnumImagePixelFormat.IpfNv21, "");
                            if (text != null && text.Length > 0)
                            {
                                for (int i = 0; i < text.Length; i++)
                                {
                                    if (i == 0)
                                    {
                                        msg1.Obj = "Code[1]: " + text[0].BarcodeText;
                                    }
                                    else
                                    {
                                        msg1.Obj = msg1.Obj + "\n\n" + "Code[" + (i + 1) + "]: " + text[i].BarcodeText;
                                    }
                                }
                            }
                        }
                    }
                    catch (BarcodeReaderException e)
                    {
                        msg1.Obj = "";
                        e.PrintStackTrace();
                    }

                    isReady = true;
                    myHandler.SendMessage(msg1);
                }
                else if (msg.What == 200)
                {
                    tv_text.Text = msg.Obj.ToString();
                    //System.Console.WriteLine("end update UI");
                }
            }