抱歉,如果我错了,我正在使用 C# 和 XAML 为 Windows 8 开发 Metro 应用程序,我的应用程序能够捕获 QR 码图像,将其保存在图片库中,解码 QR 图像(我正在使用 XZing.Net 库解码)并显示以 QR 图像编码的内容。如果我用手指挡住网络摄像头闪光灯并拍摄图像,一切正常,但如果在拍摄图像后闪光灯打开,XZing.Net 无法解码。有什么方法可以使用代码关闭闪光灯。请在下面查看我的代码
try
{
MediaCapture m_mediaCaptureMgr = new MediaCapture();
await m_mediaCaptureMgr.InitializeAsync();
qrCameraElement.Source = m_mediaCaptureMgr;
await m_mediaCaptureMgr.StartPreviewAsync();
}
catch(Exception)
{
}
“qrCameraElement”是 CaptureElement 的实例
在捕获按钮单击
StorageFile m_photoStorageFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("QRImage.png", CreationCollisionOption.ReplaceExisting);
ImageEncodingProperties imageProperties = ImageEncodingProperties.CreatePng();
await m_mediaCaptureMgr.ClearEffectsAsync(MediaStreamType.Photo);
await m_mediaCaptureMgr.CapturePhotoToStorageFileAsync(imageProperties, m_photoStorageFile);
StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("QRImage.png");
try
{
using (IRandomAccessStream photoStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
{
WriteableBitmap writeableBitmap = await BitmapFactory.New(1, 1).FromStream(photoStream);
writeableBitmap.SetSource(photoStream);
var barcodeReader = new BarcodeReader
{
PossibleFormats = new List<BarcodeFormat> { BarcodeFormat.QR_CODE },
TryHarder = true,
AutoRotate = true
};
var result = barcodeReader.Decode(writeableBitmap);
if(result != null)
{
//Do something
}
else
{
//Display message as unable to read QR image
}
}
}
catch(Exception e)
{
Console.WriteLine(e.Message);
}
result
当使用网络摄像头 Flash 时,我得到了空值。请帮我。