⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b.java

📁 二维QR条码项目的J2ME源代码。软件包括1.核心QR码编/解库
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                {
                    a2 = c1.a();
                    break label0;
                }
            }
            a2 = c1.b();
        }
        int k = (new jp.sourceforge.qrcode.geom.c(a1, a2)).e();
        int ai[];
        (ai = new int[2])[0] = (a2.b - a1.b << jp.sourceforge.qrcode.reader.b.a) / k;
        ai[1] = (a2.a - a1.a << jp.sourceforge.qrcode.reader.b.a) / k;
        return ai;
    }

    private static a[] b(jp.sourceforge.qrcode.geom.c ac[])
        throws jp.sourceforge.qrcode.exception.b
    {
        Vector vector = new Vector();
        for(int i = 0; i < ac.length - 1; i++)
        {
            jp.sourceforge.qrcode.geom.c c1 = ac[i];
            for(int k = i + 1; k < ac.length; k++)
            {
                jp.sourceforge.qrcode.geom.c c2 = ac[k];
                if(!jp.sourceforge.qrcode.geom.c.b(c1, c2))
                    continue;
                int l;
                int i1;
                if(c1.c())
                {
                    l = c1.d().a;
                    i1 = c2.d().b;
                } else
                {
                    l = c2.d().a;
                    i1 = c1.d().b;
                }
                vector.addElement(new a(l, i1));
            }

        }

        a aa[] = new a[vector.size()];
        for(int j = 0; j < aa.length; j++)
            aa[j] = (a)vector.elementAt(j);

        if(aa.length == 3)
            return aa;
        else
            throw new jp.sourceforge.qrcode.exception.b();
    }

    private static a[] a(a aa[], int ai[])
    {
        a aa1[] = new a[3];
        int i;
        switch(i = a(ai))
        {
        case 1: // '\001'
            aa1[1] = a(aa, 1, 2);
            aa1[2] = a(aa, 2, 4);
            break;

        case 2: // '\002'
            aa1[1] = a(aa, 2, 4);
            aa1[2] = a(aa, 8, 4);
            break;

        case 3: // '\003'
            aa1[1] = a(aa, 4, 8);
            aa1[2] = a(aa, 1, 8);
            break;

        case 4: // '\004'
            aa1[1] = a(aa, 8, 1);
            aa1[2] = a(aa, 2, 1);
            break;
        }
        for(int j = 0; j < aa.length; j++)
            if(!aa[j].a(aa1[1]) && !aa[j].a(aa1[2]))
                aa1[0] = aa[j];

        return aa1;
    }

    private static int a(int ai[])
    {
        int i = ai[0];
        int j = ai[1];
        if(i >= 0 && j > 0)
            return 1;
        if(i > 0 && j <= 0)
            return 2;
        if(i <= 0 && j < 0)
            return 3;
        return i >= 0 || j < 0 ? 0 : 4;
    }

    private static a a(a aa[], int i, int j)
    {
        new a();
        a a1 = null;
        int k = i != 1 && j != 1 ? 0x7fffffff : 0;
        int l = i != 2 && j != 2 ? 0x7fffffff : 0;
        a1 = new a(k, l);
        for(int i1 = 0; i1 < aa.length; i1++)
            switch(i)
            {
            case 3: // '\003'
            case 5: // '\005'
            case 6: // '\006'
            case 7: // '\007'
            default:
                break;

            case 1: // '\001'
                if(a1.a < aa[i1].a)
                {
                    a1 = aa[i1];
                    break;
                }
                if(a1.a != aa[i1].a)
                    break;
                if(j == 2)
                {
                    if(a1.b < aa[i1].b)
                        a1 = aa[i1];
                    break;
                }
                if(a1.b > aa[i1].b)
                    a1 = aa[i1];
                break;

            case 2: // '\002'
                if(a1.b < aa[i1].b)
                {
                    a1 = aa[i1];
                    break;
                }
                if(a1.b != aa[i1].b)
                    break;
                if(j == 1)
                {
                    if(a1.a < aa[i1].a)
                        a1 = aa[i1];
                    break;
                }
                if(a1.a > aa[i1].a)
                    a1 = aa[i1];
                break;

            case 4: // '\004'
                if(a1.a > aa[i1].a)
                {
                    a1 = aa[i1];
                    break;
                }
                if(a1.a != aa[i1].a)
                    break;
                if(j == 2)
                {
                    if(a1.b < aa[i1].b)
                        a1 = aa[i1];
                    break;
                }
                if(a1.b > aa[i1].b)
                    a1 = aa[i1];
                break;

            case 8: // '\b'
                if(a1.b > aa[i1].b)
                {
                    a1 = aa[i1];
                    break;
                }
                if(a1.b != aa[i1].b)
                    break;
                if(j == 1)
                {
                    if(a1.a < aa[i1].a)
                        a1 = aa[i1];
                    break;
                }
                if(a1.a > aa[i1].a)
                    a1 = aa[i1];
                break;
            }

        return a1;
    }

    private static int[] a(boolean aflag[][], a aa[])
    {
        int ai[] = new int[3];
        for(int i = 0; i < 3; i++)
        {
            boolean flag = false;
            int l = aa[i].b;
            int j;
            for(j = aa[i].a; j >= 0; j--)
            {
                if(!aflag[j][l] || aflag[j - 1][l])
                    continue;
                if(flag)
                    break;
                flag = true;
            }

            flag = false;
            int k;
            for(k = aa[i].a; k < aflag.length; k++)
            {
                if(!aflag[k][l] || aflag[k + 1][l])
                    continue;
                if(flag)
                    break;
                flag = true;
            }

            ai[i] = (k - j) + 1;
        }

        return ai;
    }

    private static int b(a aa[], int ai[])
    {
        int i = jp.sourceforge.qrcode.reader.b.a;
        int j = (new jp.sourceforge.qrcode.geom.c(aa[0], aa[1])).e() << i;
        int k = (ai[0] + ai[1] << i) / 14;
        int l = (j / k - 10) / 4;
        if((j / k - 10) % 4 >= 2)
            l++;
        return l;
    }

    private static int a(a aa[], int ai[], int ai1[], boolean aflag[][])
        throws e, d
    {
        boolean aflag1[] = new boolean[18];
        a aa1[] = new a[18];
        int i1 = ai[0];
        int j1 = ai[1];
        jp.sourceforge.qrcode.geom.b b1;
        (b1 = new jp.sourceforge.qrcode.geom.b(i1, j1, ai1[0])).d = aa[1];
        for(int k1 = 0; k1 < 6; k1++)
        {
            for(int i2 = 0; i2 < 3; i2++)
            {
                int i = b1.a(i2 - 7, 0).a;
                int k = b1.a(0, k1 - 3).b;
                aflag1[i2 + k1 * 3] = aflag[i][k];
                aa1[i2 + k1 * 3] = new a(i, k);
            }

        }

        int l1;
        try
        {
            l1 = a(aflag1);
        }
        catch(c c1)
        {
            b1.d = aa[2];
            b1.c = ai1[1];
            for(int j2 = 0; j2 < 6; j2++)
            {
                for(int k2 = 0; k2 < 3; k2++)
                {
                    int j = b1.a(j2 - 3, 0).a;
                    int l = b1.a(0, k2 - 7).b;
                    aflag1[k2 + j2 * 3] = aflag[j][l];
                    aa1[j2 + k2 * 3] = new a(j, l);
                }

            }

            try
            {
                l1 = a(aflag1);
            }
            catch(c c2)
            {
                c1.printStackTrace();
                throw c2;
            }
        }
        return l1;
    }

    private static int a(boolean aflag[])
        throws e
    {
        int i = 0;
        int j = 0;
        do
        {
            if(j >= a.length)
                break;
            i = 0;
            for(int k = 0; k < 18; k++)
                if(aflag[k] ^ ((a[j] >> k) % 2 == 1))
                    i++;

            if(i <= 3)
                break;
            j++;
        } while(true);
        if(i <= 3)
            return 7 + j;
        else
            throw new e();
    }

    static final int a[] = {
        31892, 34236, 39577, 42195, 48118, 51042, 55367, 58893, 63784, 0x10b78, 
        0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9, 0x177ec, 0x18ec4, 0x191e1, 0x1afab, 
        0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75, 0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 
        0x2542e, 0x26a64, 0x27541, 0x28c69
    };
    a b[];
    int c;
    int d[];
    int e;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -