Exemplo n.º 1
0
        private static DecodeResult ProcessDecode(Image <Rgba32> image)
        {
            var decodeResult = new DecodeResult();
            var source       = new ImageSharpLuminanceSource <Rgba32>(image);
            var reader       = new BarcodeReader(null, null, ls => new GlobalHistogramBinarizer(ls))
            {
                AutoRotate  = true,
                TryInverted = true,
                Options     = new DecodingOptions
                {
                    TryHarder       = true,
                    PossibleFormats = new List <BarcodeFormat>
                    {
                        BarcodeFormat.ITF
                        //BarcodeFormat.EAN_8,
                        //BarcodeFormat.CODE_39,
                        //BarcodeFormat.UPC_A
                    }
                }
            };
            var result = reader.Decode(source);

            if (result != null)
            {
                decodeResult.ItemFound    = true;
                decodeResult.BarcodeType  = result.BarcodeFormat.ToString();
                decodeResult.BarcodeValue = result.Text;
            }

            return(decodeResult);
        }
        public void Luminance_Is_Within_Margin_Of_Error(string fileName)
        {
            byte[] controlLuminanceSourceMatrix;
            using (var control = LoadBitmapImage(fileName))
            {
                var bitmapLuminanceSource = new BitmapLuminanceSource(control);
                controlLuminanceSourceMatrix = bitmapLuminanceSource.Matrix;
            }

            byte[] testLuminanceSourceMatrix;
            using (var bitmap = LoadImageSharpBitmap(fileName))
            {
                var imagesharpBitmapLuminanceSource = new ImageSharpLuminanceSource <SelectedPixelFormat>(bitmap);
                testLuminanceSourceMatrix = imagesharpBitmapLuminanceSource.Matrix;
            }

            Assert.AreEqual(controlLuminanceSourceMatrix.Length, testLuminanceSourceMatrix.Length);

            for (int index = 0; index < controlLuminanceSourceMatrix.Length; index++)
            {
                var controlColor = controlLuminanceSourceMatrix[index];
                var testColor    = testLuminanceSourceMatrix[index];

                Assert.That(testColor, Is.EqualTo(controlColor).Within(3));
            }
        }
 public void Should_Calculate_Luminance_And_Decode(string fileName, string content)
 {
     using (var bitmap = LoadImageSharpBitmap(fileName))
     {
         var luminance = new ImageSharpLuminanceSource <SelectedPixelFormat>(bitmap);
         var reader    = new BarcodeReader <SelectedPixelFormat>();
         var result    = reader.Decode(luminance);
         Assert.That(result?.Text, Is.EqualTo(content));
     }
 }
Exemplo n.º 4
0
        protected ZXing.Result Decode(Image <Rgba32> bitmap)
        {
            //PM> Install-Package ZXing.Net.Bindings.ImageSharp
            var source = new ImageSharpLuminanceSource <Rgba32>(bitmap);

            //PM> Install-Package ZXing.Net
            var reader = new BarcodeReader(null, null, ls => new GlobalHistogramBinarizer(ls))
            {
                AutoRotate  = true,
                TryInverted = true,
                Options     = new DecodingOptions
                {
                    TryHarder = true,
                }
            };

            var result = reader.Decode(source);

            return(result);
        }
Exemplo n.º 5
0
        /// <summary>
        /// uses the IBarcodeReaderGeneric implementation and the <see cref="ImageSharpLuminanceSource{TPixel}"/> class for decoding
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="image"></param>
        /// <returns></returns>
        public static Result[] DecodeMultiple <TPixel>(this IBarcodeReaderGeneric reader, ImageBase <TPixel> image) where TPixel : struct, IPixel <TPixel>
        {
            var luminanceSource = new ImageSharpLuminanceSource <TPixel>(image);

            return(reader.DecodeMultiple(luminanceSource));
        }
        /// <summary>
        /// uses the IBarcodeReaderGeneric implementation and the <see cref="ImageSharpLuminanceSource"/> class for decoding
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="image"></param>
        /// <returns></returns>
        public static Result[] DecodeMultiple(this IBarcodeReaderGeneric reader, Image image)
        {
            var luminanceSource = new ImageSharpLuminanceSource(image);

            return(reader.DecodeMultiple(luminanceSource));
        }
        /// <summary>
        /// uses the IBarcodeReaderGeneric implementation and the <see cref="ImageSharpLuminanceSource{TPixel}"/> class for decoding
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="image"></param>
        /// <returns></returns>
        public static Result Decode <TPixel>(this IBarcodeReaderGeneric reader, Image <TPixel> image) where TPixel : unmanaged, IPixel <TPixel>
        {
            var luminanceSource = new ImageSharpLuminanceSource <TPixel>(image);

            return(reader.Decode(luminanceSource));
        }