public void RGBLuminanceSource_Should_Work_With_BitmapImage() { var pixelFormats = new [] { PixelFormats.Bgr24, PixelFormats.Bgr32, // PixelFormats.Bgra32, // TODO: alpha channel calculation isn't fully accurate PixelFormats.Rgb24, //PixelFormats.Bgr565, // conversion isn't accurate to compare it directly to RGB24 //PixelFormats.Bgr555, // conversion isn't accurate to compare it directly to RGB24 PixelFormats.Gray8, }; foreach (var pixelFormat in pixelFormats) { BitmapSource bitmapImage = new BitmapImage(new Uri(samplePicRelPath, UriKind.RelativeOrAbsolute)); if (bitmapImage.Format != pixelFormat) { bitmapImage = new FormatConvertedBitmap(bitmapImage, pixelFormat, null, 0); } var rgbLuminanceSource = new BitmapSourceLuminanceSource(bitmapImage); var rgbLuminanceSourceResult = rgbLuminanceSource.ToString(); Assert.That(samplePicRelResult.Equals(rgbLuminanceSourceResult)); } }
public void Should_Support_Cropping() { BitmapSource bitmapImage = new BitmapImage(new Uri(cropSamplePicRelPath, UriKind.RelativeOrAbsolute)); var rgbLuminanceSource = new BitmapSourceLuminanceSource(bitmapImage); var croppedImage = rgbLuminanceSource.crop(0, 0, rgbLuminanceSource.Width / 2, rgbLuminanceSource.Height / 5); var result = croppedImage.ToString(); Assert.AreEqual(cropSamplePicRelResult, result); }
public static Result GetBarcodeResultFromQRBitmap(Bitmap bitmap) { var luminanceSource = new BitmapSourceLuminanceSource(CreateBitmapSourceFromBitmap(bitmap)); var barcodeReader = new BarcodeReader(); var barcodeResult = barcodeReader.Decode(luminanceSource); return(barcodeResult); }
public void RGB565LuminanceSource_Should_Give_The_Same_Result_As_RGBLuminanceSource_For_BGR565() { BitmapSource bitmapImage = new BitmapImage(new Uri(samplePicRelPath, UriKind.RelativeOrAbsolute)); bitmapImage = new FormatConvertedBitmap(bitmapImage, PixelFormats.Bgr565, null, 0); var bytes = new byte[bitmapImage.PixelHeight*bitmapImage.PixelWidth*2]; bitmapImage.CopyPixels(bytes, bitmapImage.PixelWidth * 2, 0); var rgb565LuminanceSource = new RGB565LuminanceSource(bytes, bitmapImage.PixelWidth, bitmapImage.PixelHeight); var rgbLuminanceSource = new BitmapSourceLuminanceSource(bitmapImage); Assert.AreEqual(rgbLuminanceSource.ToString(), rgb565LuminanceSource.ToString()); }
public void RGB565LuminanceSource_Should_Give_The_Same_Result_As_RGBLuminanceSource_For_BGR565() { BitmapSource bitmapImage = new BitmapImage(new Uri(samplePicRelPath, UriKind.RelativeOrAbsolute)); bitmapImage = new FormatConvertedBitmap(bitmapImage, PixelFormats.Bgr565, null, 0); var bytes = new byte[bitmapImage.PixelHeight * bitmapImage.PixelWidth * 2]; bitmapImage.CopyPixels(bytes, bitmapImage.PixelWidth * 2, 0); var rgb565LuminanceSource = new RGB565LuminanceSource(bytes, bitmapImage.PixelWidth, bitmapImage.PixelHeight); var rgbLuminanceSource = new BitmapSourceLuminanceSource(bitmapImage); Assert.AreEqual(rgbLuminanceSource.ToString(), rgb565LuminanceSource.ToString()); }
public void RGBLuminanceSource_Should_Work_With_BitmapImage() { var pixelFormats = new [] { PixelFormats.Bgr24, PixelFormats.Bgr32, // PixelFormats.Bgra32, // TODO: alpha channel calculation isn't fully accurate PixelFormats.Rgb24, //PixelFormats.Bgr565, // conversion isn't accurate to compare it directly to RGB24 //PixelFormats.Bgr555, // conversion isn't accurate to compare it directly to RGB24 PixelFormats.Gray8, }; foreach (var pixelFormat in pixelFormats) { BitmapSource bitmapImage = new BitmapImage(new Uri(samplePicRelPath, UriKind.RelativeOrAbsolute)); if (bitmapImage.Format != pixelFormat) bitmapImage = new FormatConvertedBitmap(bitmapImage, pixelFormat, null, 0); var rgbLuminanceSource = new BitmapSourceLuminanceSource(bitmapImage); var rgbLuminanceSourceResult = rgbLuminanceSource.ToString(); Assert.That(samplePicRelResult.Equals(rgbLuminanceSourceResult)); } }
public void Should_Support_Cropping() { BitmapSource bitmapImage = new BitmapImage(new Uri(cropSamplePicRelPath, UriKind.RelativeOrAbsolute)); var rgbLuminanceSource = new BitmapSourceLuminanceSource(bitmapImage); var croppedImage = rgbLuminanceSource.crop(0, 0, rgbLuminanceSource.Width / 2, rgbLuminanceSource.Height/5); var result = croppedImage.ToString(); Assert.AreEqual(cropSamplePicRelResult, result); }