如何使用zxing c#port

bfhwhh0e  于 2021-07-05  发布在  Java
关注(0)|答案(3)|浏览(360)

注意:我最初的问题是关于zxingc#端口是否可靠,但在这里,我试图找出如何使用它。因此,它们不是重复的。
我正在尝试使用zxing c#模块,但遇到了问题。以前用过zxing的人知道如何正确使用它吗?不幸的是,c文档非常小。
我现在的代码是:

using com.google.zxing;
using com.google.zxing.client.j2se;
using com.google.zxing.common;

//...

Reader reader = new MultiFormatReader();
MonochromeBitmapSource image = new BufferedImageMonochromeBitmapSource(new Bitmap(Image.FromFile("barcode.jpg")),false);

Result result = reader.decode(image);
string text = result.getText();
sbyte[] rawbytes = result.getRawBytes();
BarcodeFormat format = result.getBarcodeFormat();
ResultPoint[] points = result.getResultPoints();
Console.WriteLine("barcode text: {0}", text);
Console.WriteLine("raw bytes: {0}", rawbytes);
Console.WriteLine("format: {0}", format);
Console.ReadLine();

我在以“result=…”开头的行中得到一个异常readerexception状态: "Unable to cast object of type 'com.google.zxing.oned.MultiFormatOneDReader' to type 'com.google.zxing.Reader'. 那么,我做错了什么?
更新:我将尝试建议的想法,但在此期间,我发现这个问题在中兴集团。

fcipmucu

fcipmucu1#

这是一个生成qrcode的示例。

QRCodeWriter writer = new QRCodeWriter();
        com.google.zxing.common.ByteMatrix matrix;

        int size = 180;
        matrix = writer.encode("MECARD:N:Owen,Sean;ADR:76 9th Avenue, 4th Floor, New York, NY 10011;TEL:+12125551212;EMAIL:srowen@example.com;; ", BarcodeFormat.QR_CODE, size, size, null);

        Bitmap img = new Bitmap(size, size);
        Color Color = Color.FromArgb(0, 0, 0);

        for (int y = 0; y < matrix.Height; ++y)
        {
            for (int x = 0; x < matrix.Width; ++x)
            {
                Color pixelColor = img.GetPixel(x, y);

                //Find the colour of the dot
                if (matrix.get_Renamed(x, y) == -1)
                {
                    img.SetPixel(x, y, Color.White );
                }
                else
                {
                    img.SetPixel(x, y, Color.Black);
                }
            }
        }

        img.Save(@"c:\test.bmp",ImageFormat.Bmp);

请参见http://code.google.com/p/zxing/wiki/barcodecontents

dgiusagp

dgiusagp2#

我怀疑你只是缺少一个演员/你使用了错误的类型,尝试改变

Result result = reader.decode(image);

排队进入以下位置之一

Result result = (Result)reader.decode(image);

或者有可能

MultiFormatOneDResult result = reader.decode(image);

恐怕我现在没有权限使用c编译器,所以我无法验证这一点-因此,如果我偏离了目标,我深表歉意!

dnph8jn4

dnph8jn43#

我认为这一定是端口的缺陷,因为在最初的java中,这些类是强制转换兼容的。也许只是使用multiformatonedreader作为代码中的引用类型,而不是reader,尽管这行应该是很好的。如果您以其他方式修复源代码并希望提交更改,请告知我们(项目)。

相关问题