.net c#識別圖片二維碼 圖片處理(Img和BitMap)
阿新 • • 發佈:2018-12-29
1.場景
承接上篇,如何對攝像頭得到的圖片或者本地圖片進行二維碼識別
2.程式
程式使用類庫zxing.dll(用來識別二維碼),根據圖片識別二維碼方法是通用的
(1)識別二維碼並得到二維碼資訊的方法。(傳入引數為BitMap物件)
public string RecognizePic(Bitmap image) { string str = null; try { if (image != null) { //Bitmap img = new Bitmap(@"D:\069936cb-b9a7-4fed-a7de-b9cd99f487ad.png"); byte[] bt = getImgByte(image); LuminanceSource source = new RGBLuminanceSource(bt, image.Width, image.Height); BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); Result result = new MultiFormatReader().decode(bitmap); if (result != null) { str = result.Text; } } } catch (Exception re) { throw re; } return str; }
(2)圖片轉換為byte[]。(Image為Bitmap的基型別)
public byte[] getImgByte(Image image) { MemoryStream ms = new MemoryStream(); try { image.Save(ms, ImageFormat.Bmp); byte[] bt = ms.GetBuffer(); return bt; } catch (Exception ex) { throw ex; } finally { ms.Close(); } }
(3)識別本機圖片二維碼
public string RecognizePic(string path)
{
Bitmap bitmap = new Bitmap(@path);
return RecognizePic(bitmap);
}
結合上篇,定時器捕捉到畫面並能夠識別出二維碼的值是,停止定時器,圖片定格,得到值。
大功告成!交差!