Xamarin 如何使用ZXing库从图像中识别二维码?

Xamarin 如何使用ZXing库从图像中识别二维码?,xamarin,xamarin.android,qr-code,zxing,Xamarin,Xamarin.android,Qr Code,Zxing,我有一个Xamarin Android项目,我想从相机中识别二维码,同时将图片保存到存储器中。我使用Android.Hardware.Camera.IPreviewCallback从相机获取图像。保存图像按预期工作,但二维码识别失败。这是我的密码: void Android.Hardware.Camera.IPreviewCallback.OnPreviewFrame(字节[]数据,Android.Hardware.Camera-Camera) { 字节[]jpegData=ConvertYuv

我有一个Xamarin Android项目,我想从相机中识别二维码,同时将图片保存到存储器中。我使用Android.Hardware.Camera.IPreviewCallback从相机获取图像。保存图像按预期工作,但二维码识别失败。这是我的密码:

void Android.Hardware.Camera.IPreviewCallback.OnPreviewFrame(字节[]数据,Android.Hardware.Camera-Camera)
{
字节[]jpegData=ConvertYuvToJpeg(数据);
位图位图=BytesToBitmap(jpegData);
SaveBitmapImage(位图);//这很好用
var width=(int)_textureView.width;
var height=(int)_textureView.height;
//如何获得亮度源??
//亮度源=新的RGBLuminanceSource(RGB值、bm.Width、bm.Height、RGBLuminanceSource.BitmapFormat.ARGB32);
//亮度源=新的RGBLuminanceSource(JPEG数据、宽度、高度);
亮度源=新平面UV亮度源(数据、宽度、高度、,
0,0,宽度,高度,假);
BinaryBitmap BinaryBitmap=新的二进制位图(新的混合二进制程序(源));
QRCodeReader=新的QRCodeReader();
var result=reader.decode(二进制位图);
}
召唤

var result=reader.decode(二进制位图);
始终返回null

编辑:


看来问题出在照相机上。它不关注二维码,图像模糊,ZXing库无法解码。如何使相机对焦?

问题在于相机对焦。必须设置焦点模式。下面是一个代码:

var参数=_camera.GetParameters();
parameters.FocusMode=GetOptimizeFocusMode(参数);
_设置参数(参数);
私有字符串GetOptimalFocusMode(Android.Hardware.Camera.Parameters)
{
字符串结果;
IList focusModes=parameters.SupportedFocusModes;
if(focusModes.Contains(Android.Hardware.Camera.Parameters.FocusModeContinuousVideo))
{
结果=Android.Hardware.Camera.Parameters.FocusModeContinuousVideo;
}
else if(focusModes.Contains(Android.Hardware.Camera.Parameters.FocusModeAuto))
{
结果=Android.Hardware.Camera.Parameters.FocusModeAuto;
}
其他的
{
结果=parameters.SupportedFocusModes.First();
}
返回结果;
}