?? datamatrix.java
字號:
if(c == '6' && s1.length() == 0)
{
as[s1.length()] = "";
s1 = s1 + '\355';
i++;
}
if(c == '7' && i < k - 7)
{
String s2 = s.substring(i + 2, i + 8);
double d = 0.0D;
try
{
d = (new Double(s2)).doubleValue();
}
catch(Exception exception1)
{
d = 0.0D;
}
if(d <= 126D)
{
as[s1.length()] = "" + (char)(int)(d + 1.0D);
s1 = s1 + '\361';
}
if(d >= 127D && d <= 16382D)
{
int i1 = (int)((d - 127D) / 254D) + 128;
int k1 = (int)((d - 127D) % 254D) + 1;
as[s1.length()] = "" + (char)i1 + (char)k1;
s1 = s1 + '\361';
}
if(d >= 16383D)
{
int j1 = (int)((d - 16383D) / 64516D) + 192;
int l1 = (int)((d - 16383D) / 254D);
l1 = l1 % 254 + 1;
int i2 = (int)((d - 16383D) % 254D) + 1;
as[s1.length()] = "" + (char)j1 + (char)l1 + (char)i2;
s1 = s1 + '\361';
}
i += 7;
}
if(c == 'd' && i < k - 3)
{
String s3 = s.substring(i + 2, i + 5);
int l = 0;
try
{
l = (new Integer(s3)).intValue();
}
catch(Exception exception)
{
l = 0;
}
if(l > 255)
l = 255;
s1 = s1 + (char)l;
i += 4;
}
}
} else
{
s1 = s1 + (char)j;
}
}
return s1;
}
private void CA()
{
String as[] = new String[5000];
reBuild = false;
internalCode = code;
if(processTilde)
internalCode = C9(code, as);
if(internalCode.length() == 0)
return;
int ai[] = new int[internalCode.length()];
for(int i = 0; i < internalCode.length(); i++)
ai[i] = internalCode.charAt(i);
bitmap = CB(ai, as);
}
private int[][] CB(int ai[], String as[])
{
int ai1[] = new int[5000];
int ai2[] = new int[1];
int ai3[] = new int[1];
int i = 0;
if(encoding != E_AUTO)
currentEncoding = encoding;
if(encoding == E_AUTO)
i = C4(ai.length, ai, ai1, as);
if(encoding == E_ASCII)
i = CE(ai.length, ai, ai1, as);
if(encoding == E_C40)
i = C6(ai.length, ai2, ai, ai1, false, true, false);
if(encoding == E_TEXT)
i = C6(ai.length, ai2, ai, ai1, true, true, false);
if(encoding == E_BASE256)
i = C5(ai.length, ai2, ai, ai3, ai1, false, as);
if(encoding == E_NONE)
{
i = ai.length;
for(int j = 0; j < i; j++)
ai1[j] = ai[j];
}
int k = 0;
if(preferredFormat != -1)
{
k = preferredFormat;
if(i > C0[k][7])
k = 0;
}
for(; i > C0[k][7] && k < 30; k++)
{
if(currentEncoding != E_C40 && currentEncoding != E_TEXT)
continue;
if(C49rest == 1 && ai1[i - 2] == 254 && C0[k][7] == i - 1)
{
ai1[i - 2] = ai1[i - 1];
ai1[i - 1] = 0;
i--;
break;
}
if(C49rest != 0 || ai1[i - 1] != 254 || C0[k][7] != i - 1)
continue;
ai1[i - 1] = 0;
i--;
break;
}
if(k == 30)
return null;
int l = k;
rows = C0[l][0];
cols = C0[l][1];
datarows = C0[l][2];
datacols = C0[l][3];
maprows = C0[l][5];
mapcols = C0[l][6];
regions = C0[l][4];
totaldata = C0[l][7];
totalerr = C0[l][8];
reeddata = C0[l][9];
reederr = C0[l][10];
reedblocks = C0[l][11];
if((currentEncoding == E_C40 || currentEncoding == E_TEXT) && C49rest == 0 && i == totaldata && ai1[i - 1] == 254)
ai1[i - 1] = 129;
int ai4[][] = new int[10][255];
boolean flag = true;
for(int i1 = i; i1 < totaldata; i1++)
{
if(flag)
ai1[i1] = 129;
else
ai1[i1] = C8(129, i1 + 1);
flag = false;
}
int j1 = 0;
int k1 = 0;
for(int l1 = 1; l1 <= totaldata; l1++)
{
ai4[j1][k1] = ai1[l1 - 1];
if(++j1 == reedblocks)
{
j1 = 0;
k1++;
}
}
int ai5[] = new int[10];
int i2 = 0;
reed reed1 = new reed();
reed.K = reeddata;
for(int j2 = 0; j2 < reedblocks; j2++)
{
ai5[j2] = reeddata + reederr;
int k2 = reeddata;
if(rows == 144 && j2 > 7)
{
ai5[j2] = (reeddata + reederr) - 1;
k2 = 155;
}
reed1.calcRS(ai4[j2], k2, reederr);
i2 += ai5[j2];
}
int ai6[] = new int[i2];
int l2 = 0;
int i3 = 0;
for(int j3 = 0; j3 < ai5[0]; j3++)
{
for(int k3 = 0; k3 < reedblocks; k3++)
if(j3 < ai5[k3])
{
ai6[i3++] = ai4[k3][j3];
l2++;
}
}
int ai7[][] = CC(ai6);
return ai7;
}
private int[][] CC(int ai[])
{
int ai1[][] = new int[cols][rows];
int i = 0;
int j = 0;
if(regions == 2)
{
CD(ai1, i, j, datacols + 2, datarows + 2);
CD(ai1, i + datacols + 2, j, datacols + 2, datarows + 2);
} else
{
int k = (int)Math.sqrt(regions);
for(int l = 0; l < k; l++)
{
for(int i1 = 0; i1 < k; i1++)
CD(ai1, i + l * (datacols + 2), j + i1 * (datarows + 2), datacols + 2, datarows + 2);
}
}
int ai2[] = new int[(mapcols + 10) * maprows];
charPlacer charplacer = new charPlacer(null);
charplacer.ncol = mapcols;
charplacer.nrow = maprows;
charplacer.array = ai2;
charplacer.make();
int j1 = 1;
boolean flag = false;
boolean flag1 = false;
for(int i2 = 0; i2 < maprows; i2++)
{
int j2 = 1;
for(int k2 = 0; k2 < mapcols; k2++)
{
int l1 = k2 + j2;
int k1 = i2 + j1;
if(ai2[i2 * mapcols + k2] > 9)
{
int l2 = ai2[i2 * mapcols + k2] / 10;
int i3 = ai2[i2 * mapcols + k2] % 10;
int j3 = ai[l2 - 1] & 1 << 8 - i3;
ai1[l1][k1] = j3;
} else
{
ai1[l1][k1] = ai2[i2 * mapcols + k2];
}
if(k2 > 0 && (k2 + 1) % datacols == 0)
j2 += 2;
}
if(i2 > 0 && (i2 + 1) % datarows == 0)
j1 += 2;
}
return ai1;
}
private void CD(int ai[][], int i, int j, int k, int l)
{
int i1 = 0;
for(int k1 = 0; k1 < k; k1++)
{
if(k1 % 2 == 0)
i1 = 1;
else
i1 = 0;
ai[i + k1][(j + l) - 1] = 1;
ai[i + k1][j] = i1;
}
i1 = 0;
for(int l1 = 0; l1 < l; l1++)
{
int j1;
if((l1 + 1) % 2 == 0)
j1 = 1;
else
j1 = 0;
ai[i][j + l1] = 1;
ai[(i + k) - 1][j + l1] = j1;
}
}
private int CE(int i, int ai[], int ai1[], String as[])
{
int j = 0;
boolean flag = false;
for(int k = 0; k < i; k++)
{
boolean flag1 = false;
if(k < i - 1 && ai[k] >= 48 && ai[k] <= 57 && ai[k + 1] >= 48 && ai[k + 1] <= 57 && k < i)
{
int l = (ai[k] - 48) * 10 + (ai[k + 1] - 48);
ai1[j++] = 130 + l;
k++;
flag1 = true;
}
if(!flag1 && as[k] != null)
{
if(ai[k] == 234 || ai[k] == 237 || ai[k] == 236 || ai[k] == 232)
{
ai1[j++] = ai[k];
flag1 = true;
}
if(ai[k] == 233 || ai[k] == 241)
{
ai1[j++] = ai[k];
for(int i1 = 0; i1 < as[k].length(); i1++)
ai1[j++] = as[k].charAt(i1);
flag1 = true;
}
}
if(!flag1)
if(ai[k] < 128)
{
ai1[j++] = ai[k] + 1;
} else
{
ai1[j++] = 235;
ai1[j++] = (ai[k] - 128) + 1;
}
}
return j;
}
protected void addBar(Graphics g, int i, boolean flag, int j)
{
if(flag)
{
g.setColor(barColor);
g.fillRect(currentX, topMarginPixels + j, i, (barHeightPixels + extraHeight) - j);
}
currentX = currentX + i;
}
protected void paintChar(Graphics g, String s, String s1)
{
paintChar2(g, s, s1, 0);
}
protected void paintChar2(Graphics g, String s, String s1, int i)
{
for(int j = 0; j < s.length(); j++)
{
char c = s.charAt(j);
char c1 = s1.charAt(j);
if(c1 == 'n')
addBar(g, narrowBarPixels, c == 'b', i);
if(c1 == 'w')
addBar(g, widthBarPixels, c == 'b', i);
if(c1 == '1')
addBar(g, narrowBarPixels, c == 'b', i);
if(c1 == '2')
addBar(g, narrowBarPixels * 2, c == 'b', i);
if(c1 == '3')
addBar(g, narrowBarPixels * 3, c == 'b', i);
if(c1 == '4')
addBar(g, narrowBarPixels * 4, c == 'b', i);
}
}
protected void calculateSizes()
{
int i = code.length();
narrowBarCM = X;
widthBarCM = X * N;
if(narrowBarCM != 0.0D)
narrowBarPixels = (int)(narrowBarCM * (double)resolution);
if(widthBarCM != 0.0D)
widthBarPixels = (int)(widthBarCM * (double)resolution);
if(narrowBarPixels <= 0)
narrowBarPixels = 1;
}
public void paint(Graphics g)
{
Graphics g1 = g;
Image image = null;
if(rotate != 0)
{
String s = System.getProperty("java.version");
if(s.indexOf("1.0") == 0 || s.indexOf("1.1") == 0)
{
image = createImage(getSize().width, getSize().height);
g1 = image.getGraphics();
} else
{
IDAImageCreator idaimagecreator = new IDAImageCreator();
image = idaimagecreator.getImage(getSize().width, getSize().height);
g1 = idaimagecreator.getGraphics();
}
}
g.setColor(backColor);
g.fillRect(0, 0, getSize().width, getSize().height);
paintBasis(g1);
if(rotate != 0)
{
int i = currentX + leftMarginPixels;
int j = currentY + topMarginPixels;
Image image1 = rotate(image, rotate, i, j);
if(image1 == null)
g.drawImage(image, 0, 0, null);
else
g.drawImage(image1, 0, 0, null);
}
}
protected Image rotate(Image image, int i, int j, int k)
{
int l = image.getWidth(null);
int i1 = image.getHeight(null);
if(j > l)
j = l;
if(k > i1)
k = i1;
int ai[] = new int[l * i1];
int ai1[] = new int[j * k];
PixelGrabber pixelgrabber = new PixelGrabber(image, 0, 0, l, i1, ai, 0, l);
try
{
pixelgrabber.grabPixels();
}
catch(InterruptedException interruptedexception)
{
System.err.println("interrupted waiting for pixels!");
return null;
}
if((pixelgrabber.getStatus() & 0x80) != 0)
{
System.err.println("image fetch aborted or errored");
return null;
}
if(i == 90)
{
for(int j1 = 0; j1 < j; j1++)
{
for(int i2 = 0; i2 < k; i2++)
ai1[k * (j - (j1 + 1)) + i2] = ai[i2 * l + j1];
}
return Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(k, j, ai1, 0, k));
}
if(i == 180)
{
for(int k1 = 0; k1 < j; k1++)
{
for(int j2 = 0; j2 < k; j2++)
ai1[(k - (j2 + 1)) * j + (j - (k1 + 1))] = ai[j2 * l + k1];
}
return Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(j, k, ai1, 0, j));
}
if(i == 270)
{
for(int l1 = 0; l1 < j; l1++)
{
for(int k2 = 0; k2 < k; k2++)
ai1[k * l1 + (k - (k2 + 1))] = ai[k2 * l + l1];
}
return Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(k, j, ai1, 0, k));
} else
{
return null;
}
}
// Unreferenced inner classes:
/* anonymous class */
class _cls1
{
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -