日期:2014-05-17  浏览次数:20342 次

C# 二维码 方案 各抒己见
现公司使用的Aspose.BarCode.dll这个类库生成条形码。进行传真匹配。识别率能达到70%
近期需提高识别率,所以想通过使用二维码来进行。

在网上查找了很多示例,Aspose.BarCode.dll也是可以生成二维码,但是这个类库是需要续费的。

看了下google用JAVA做的开源zxing 但是,没有找到具体怎么在C#中如何使用的类库。与相关的示例。

也在CSDN下载了“C#二维码QRCode2”这个示例程序。这个不错,是别人自己写的。

生成二维码是比较容易的。但是,读取的时候我们是通过客户传回来的传真文件。文本格式“.tif”类似图片。
是这个传真页面,所以的先找到页面的二维码坐标之类的东西。。

各位高手,有没有类似的示例。或方案!提供下给小弟。万分感谢!

------解决方案--------------------
NickLee.Web.UI中的QRCode读写,写比较好,读还是建议用硬件设备
中文问题Ansi->Unicode即可
参考地址:www.cnblogs.com/mail-ricklee
org.zxing,写比较不好,读很好,可以参考
参考地址:http://code.google.com/p/zxing/
------解决方案--------------------
dll下载222.175.220.26:88/zxing.rar
使用
C# code
string content = "tel:汉ooj字";
        Hashtable h = new System.Collections.Hashtable();
        h.Add("UTF-8", "UTF-8");
        ByteMatrix byteMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, 200, 200, h);
        Bitmap bitmap = toBitmap(byteMatrix);

        MemoryStream ms = new MemoryStream();
        bitmap.Save("c:\\1\\a.jpg", ImageFormat.Jpeg);




        Image img = Image.FromFile("c:\\1\\a.jpg");
        Bitmap bmap;
        try
        {
            bmap = new Bitmap(img);
        }
        catch (System.IO.IOException ioe)
        {
            return;
        }
        if (bmap == null)
        {
            return;
        }
        LuminanceSource source = new RGBLuminanceSource(bmap, bmap.Width, bmap.Height);
        com.google.zxing.BinaryBitmap bitmapdc = new com.google.zxing.BinaryBitmap(new HybridBinarizer(source));
        Result result;
        try
        {
            result = new MultiFormatReader().decode(bitmapdc);
        }
        catch (ReaderException re)
        {

            return;
        }

        Response.Write(result);

------解决方案--------------------
你获取TIF就知道点阵信息.如果你的发送传真位置基本固定.如果位置不固定.你可以考虑使用楼上贴的QR码 这个有定位符..这3个大防快不难找把. 然后按巨型获取出来信息 3个大方块的位置确定了 获取个矩形也不难把.然后给你的DLL识别就好了.