本文整理汇总了C#中Android.GetParameters方法的典型用法代码示例。如果您正苦于以下问题:C# Android.GetParameters方法的具体用法?C# Android.GetParameters怎么用?C# Android.GetParameters使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Android
的用法示例。
在下文中一共展示了Android.GetParameters方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ConvertYuvToJpeg
private byte[] ConvertYuvToJpeg (byte[] yuvData, Android.Hardware.Camera camera)
{
var cameraParameters = camera.GetParameters ();
var width = cameraParameters.PreviewSize.Width;
var height = cameraParameters.PreviewSize.Height;
var yuv = new YuvImage (yuvData, cameraParameters.PreviewFormat, width, height, null);
var ms = new MemoryStream ();
var quality = 80; // adjust this as needed
yuv.CompressToJpeg (new Rect (0, 0, width, height), quality, ms);
var jpegData = ms.ToArray ();
return jpegData;
}
示例2: OnPreviewFrame
public void OnPreviewFrame(byte [] bytes, Android.Hardware.Camera camera)
{
if (!isAnalyzing)
return;
//Check and see if we're still processing a previous frame
if (processingTask != null && !processingTask.IsCompleted)
return;
if ((DateTime.UtcNow - lastPreviewAnalysis).TotalMilliseconds < options.DelayBetweenAnalyzingFrames)
return;
// Delay a minimum between scans
if (wasScanned && ((DateTime.UtcNow - lastPreviewAnalysis).TotalMilliseconds < options.DelayBetweenContinuousScans))
return;
wasScanned = false;
var cameraParameters = camera.GetParameters();
var width = cameraParameters.PreviewSize.Width;
var height = cameraParameters.PreviewSize.Height;
//var img = new YuvImage(bytes, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
lastPreviewAnalysis = DateTime.UtcNow;
processingTask = Task.Factory.StartNew (() =>
{
try
{
if (barcodeReader == null)
{
barcodeReader = new BarcodeReader (null, null, null, (p, w, h, f) =>
new PlanarYUVLuminanceSource (p, w, h, 0, 0, w, h, false));
//new PlanarYUVLuminanceSource(p, w, h, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false))
if (this.options.TryHarder.HasValue)
barcodeReader.Options.TryHarder = this.options.TryHarder.Value;
if (this.options.PureBarcode.HasValue)
barcodeReader.Options.PureBarcode = this.options.PureBarcode.Value;
if (!string.IsNullOrEmpty (this.options.CharacterSet))
barcodeReader.Options.CharacterSet = this.options.CharacterSet;
if (this.options.TryInverted.HasValue)
barcodeReader.TryInverted = this.options.TryInverted.Value;
if (this.options.PossibleFormats != null && this.options.PossibleFormats.Count > 0)
{
barcodeReader.Options.PossibleFormats = new List<BarcodeFormat> ();
foreach (var pf in this.options.PossibleFormats)
barcodeReader.Options.PossibleFormats.Add (pf);
}
}
bool rotate = false;
int newWidth = width;
int newHeight = height;
var cDegrees = getCameraDisplayOrientation(this.activity);
if (cDegrees == 90 || cDegrees == 270)
{
rotate = true;
newWidth = height;
newHeight = width;
}
if (rotate)
bytes = rotateYUV420Degree90(bytes, width, height);//rotateCounterClockwise(bytes, width, height);
var result = barcodeReader.Decode (bytes, newWidth, newHeight, RGBLuminanceSource.BitmapFormat.Unknown);
if (result == null || string.IsNullOrEmpty (result.Text))
return;
Android.Util.Log.Debug (MobileBarcodeScanner.TAG, "Barcode Found: " + result.Text);
var img = new YuvImage(bytes, cameraParameters.PreviewFormat, newWidth, newHeight, null);
System.IO.MemoryStream outStream = new System.IO.MemoryStream();
bool didIt = img.CompressToJpeg(new Rect(0,0,newWidth, newHeight), 75, outStream);
outStream.Seek(0, System.IO.SeekOrigin.Begin);
Bitmap newBM = BitmapFactory.DecodeStream(outStream);
result.CaptureImage = newBM;
wasScanned = true;
callback (result);
}
catch (ReaderException)
{
Android.Util.Log.Debug (MobileBarcodeScanner.TAG, "No barcode Found");
// ignore this exception; it happens every time there is a failed scan
}
catch (Exception)
{
// TODO: this one is unexpected.. log or otherwise handle it
throw;
}
//.........这里部分代码省略.........
示例3: OnPreviewFrame
public void OnPreviewFrame (byte [] bytes, Android.Hardware.Camera camera)
{
//Check and see if we're still processing a previous frame
if (processingTask != null && !processingTask.IsCompleted)
return;
if ((DateTime.UtcNow - lastPreviewAnalysis).TotalMilliseconds < options.DelayBetweenAnalyzingFrames)
return;
var cameraParameters = camera.GetParameters();
var width = cameraParameters.PreviewSize.Width;
var height = cameraParameters.PreviewSize.Height;
//var img = new YuvImage(bytes, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
lastPreviewAnalysis = DateTime.UtcNow;
processingTask = Task.Factory.StartNew (() =>
{
try
{
if (barcodeReader == null)
{
barcodeReader = new BarcodeReader (null, null, null, (p, w, h, f) =>
new PlanarYUVLuminanceSource (p, w, h, 0, 0, w, h, false));
//new PlanarYUVLuminanceSource(p, w, h, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false))
if (this.options.TryHarder.HasValue)
barcodeReader.Options.TryHarder = this.options.TryHarder.Value;
if (this.options.PureBarcode.HasValue)
barcodeReader.Options.PureBarcode = this.options.PureBarcode.Value;
if (!string.IsNullOrEmpty (this.options.CharacterSet))
barcodeReader.Options.CharacterSet = this.options.CharacterSet;
if (this.options.TryInverted.HasValue)
barcodeReader.TryInverted = this.options.TryInverted.Value;
if (this.options.PossibleFormats != null && this.options.PossibleFormats.Count > 0)
{
barcodeReader.Options.PossibleFormats = new List<BarcodeFormat> ();
foreach (var pf in this.options.PossibleFormats)
barcodeReader.Options.PossibleFormats.Add (pf);
}
}
bool rotate = false;
int newWidth = width;
int newHeight = height;
var cDegrees = getCameraDisplayOrientation(this.activity);
if (cDegrees == 90 || cDegrees == 270)
{
rotate = true;
newWidth = height;
newHeight = width;
}
var start = PerformanceCounter.Start();
if (rotate)
bytes = rotateCounterClockwise(bytes, width, height);
var result = barcodeReader.Decode (bytes, newWidth, newHeight, RGBLuminanceSource.BitmapFormat.Unknown);
PerformanceCounter.Stop(start, "Decode Time: {0} ms (width: " + width + ", height: " + height + ", degrees: " + cDegrees + ", rotate: " + rotate + ")");
if (result == null || string.IsNullOrEmpty (result.Text))
return;
Android.Util.Log.Debug ("ZXing.Mobile", "Barcode Found: " + result.Text);
ShutdownCamera ();
callback (result);
}
catch (ReaderException)
{
Android.Util.Log.Debug ("ZXing.Mobile", "No barcode Found");
// ignore this exception; it happens every time there is a failed scan
}
catch (Exception)
{
// TODO: this one is unexpected.. log or otherwise handle it
throw;
}
});
}
示例4: OnPreviewFrame
public void OnPreviewFrame (byte [] bytes, Android.Hardware.Camera camera)
{
if ((DateTime.Now - lastPreviewAnalysis).TotalMilliseconds < options.DelayBetweenAnalyzingFrames)
return;
try
{
var cameraParameters = camera.GetParameters();
var img = new YuvImage(bytes, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
if (barcodeReader == null)
{
barcodeReader = new BarcodeReader(null, null, null, (p, w, h, f) =>
new PlanarYUVLuminanceSource(p, w, h, 0, 0, w, h, false));
//new PlanarYUVLuminanceSource(p, w, h, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false))
if (this.options.TryHarder.HasValue)
barcodeReader.Options.TryHarder = this.options.TryHarder.Value;
if (this.options.PureBarcode.HasValue)
barcodeReader.Options.PureBarcode = this.options.PureBarcode.Value;
if (!string.IsNullOrEmpty (this.options.CharacterSet))
barcodeReader.Options.CharacterSet = this.options.CharacterSet;
if (this.options.TryInverted.HasValue)
barcodeReader.TryInverted = this.options.TryInverted.Value;
if (this.options.PossibleFormats != null && this.options.PossibleFormats.Count > 0)
{
barcodeReader.Options.PossibleFormats = new List<BarcodeFormat>();
foreach (var pf in this.options.PossibleFormats)
barcodeReader.Options.PossibleFormats.Add(pf);
}
//Always autorotate on android
barcodeReader.AutoRotate = true;
}
//Try and decode the result
var result = barcodeReader.Decode(img.GetYuvData(), img.Width, img.Height, RGBLuminanceSource.BitmapFormat.Unknown);
lastPreviewAnalysis = DateTime.Now;
if (result == null || string.IsNullOrEmpty (result.Text))
return;
Android.Util.Log.Debug("ZXing.Mobile", "Barcode Found: " + result.Text);
ShutdownCamera();
callback(result);
} catch (ReaderException) {
Android.Util.Log.Debug("ZXing.Mobile", "No barcode Found");
// ignore this exception; it happens every time there is a failed scan
} catch (Exception) {
// TODO: this one is unexpected.. log or otherwise handle it
throw;
}
}
示例5: OnPreviewFrame
public void OnPreviewFrame (byte [] bytes, Android.Hardware.Camera camera)
{
if ((DateTime.Now - lastPreviewAnalysis).TotalMilliseconds < 150)
return;
try
{
//Fix for image not rotating on devices
byte[] rotatedData = new byte[bytes.Length];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++)
rotatedData[x * height + height - y - 1] = bytes[x + y * width];
}
var cameraParameters = camera.GetParameters();
//Changed to using a YUV Image to get the byte data instead of manually working with it!
var img = new YuvImage(rotatedData, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
var dataRect = GetFramingRectInPreview();
var luminance = new PlanarYUVLuminanceSource (img.GetYuvData(), width, height, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false);
//var luminance = new PlanarYUVLuminanceSource(img.GetYuvData(), cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, 0, 0, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, false);
var binarized = new BinaryBitmap (new ZXing.Common.HybridBinarizer(luminance));
var result = reader.decodeWithState(binarized);
lastPreviewAnalysis = DateTime.Now;
if (result == null || string.IsNullOrEmpty (result.Text))
return;
Android.Util.Log.Debug("ZXing.Mobile", "Barcode Found: " + result.Text);
ShutdownCamera();
activity.OnScan (result);
} catch (ReaderException) {
Android.Util.Log.Debug("ZXing.Mobile", "No barcode Found");
// ignore this exception; it happens every time there is a failed scan
} catch (Exception){
// TODO: this one is unexpected.. log or otherwise handle it
throw;
}
}
示例6: OnPreviewFrame
public void OnPreviewFrame (byte [] bytes, Android.Hardware.Camera camera)
{
if ((DateTime.Now - lastPreviewAnalysis).TotalMilliseconds < options.DelayBetweenAnalyzingFrames)
return;
try
{
/* OLD Android Code
//Fix for image not rotating on devices
byte[] rotatedData = new byte[bytes.Length];
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++)
rotatedData[x * height + height - y - 1] = bytes[x + y * width];
}
var cameraParameters = camera.GetParameters();
//Changed to using a YUV Image to get the byte data instead of manually working with it!
var img = new YuvImage(rotatedData, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
var dataRect = GetFramingRectInPreview();
var luminance = new PlanarYUVLuminanceSource (img.GetYuvData(), width, height, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false);
//var luminance = new PlanarYUVLuminanceSource(img.GetYuvData(), cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, 0, 0, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, false);
var binarized = new BinaryBitmap (new ZXing.Common.HybridBinarizer(luminance));
var result = reader.decodeWithState(binarized);
*/
var cameraParameters = camera.GetParameters();
var img = new YuvImage(bytes, ImageFormatType.Nv21, cameraParameters.PreviewSize.Width, cameraParameters.PreviewSize.Height, null);
var dataRect = GetFramingRectInPreview();
//var barcodeReader = new BarcodeReader(null, p => new PlanarYUVLuminanceSource(img.GetYuvData(), img.Width, img.Height, dataRect.Left, dataRect.Top,
// dataRect.Width(), dataRect.Height(), false), null, null)
//{
// AutoRotate = true,
// TryHarder = true,
//};
var barcodeReader = new BarcodeReader(null, null, null, (p, w, h, f) =>
new PlanarYUVLuminanceSource(p, w, h, 0, 0, w, h, false))
//new PlanarYUVLuminanceSource(p, w, h, dataRect.Left, dataRect.Top, dataRect.Width(), dataRect.Height(), false))
{
AutoRotate = true,
TryHarder = false
};
if (this.options.PureBarcode.HasValue && this.options.PureBarcode.Value)
barcodeReader.PureBarcode = this.options.PureBarcode.Value;
if (this.options.PossibleFormats != null && this.options.PossibleFormats.Count > 0)
barcodeReader.PossibleFormats = this.options.PossibleFormats;
var result = barcodeReader.Decode(img.GetYuvData(), img.Width, img.Height, RGBLuminanceSource.BitmapFormat.Unknown);
lastPreviewAnalysis = DateTime.Now;
if (result == null || string.IsNullOrEmpty (result.Text))
return;
Android.Util.Log.Debug("ZXing.Mobile", "Barcode Found: " + result.Text);
ShutdownCamera();
activity.OnScan (result);
} catch (ReaderException) {
Android.Util.Log.Debug("ZXing.Mobile", "No barcode Found");
// ignore this exception; it happens every time there is a failed scan
} catch (Exception){
// TODO: this one is unexpected.. log or otherwise handle it
throw;
}
}