道歉,如果我错了,我正在开发使用C#和XAML for 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);
}
使用网络摄像头Flash时,我的result
为空。请帮帮我。