📄 maxicode.java
字号:
g2.setColor(this.backColor);
g2.fillArc(centerX-r5,centerY-r5,r5*2,r5*2,0,360);
g2.setColor(this.color);
g2.fillArc(centerX-r4,centerY-r4,r4*2,r4*2,0,360);
g2.setColor(this.backColor);
g2.fillArc(centerX-r3,centerY-r3,r3*2,r3*2,0,360);
g2.setColor(this.color);
g2.fillArc(centerX-r2,centerY-r2,r2*2,r2*2,0,360);
g2.setColor(this.backColor);
g2.fillArc(centerX-r1,centerY-r1,r1*2,r1*2,0,360);
byte bitValue;
int bit;
int car;
byte[] dataTMP=new byte[144];
byte[] primary=new byte[20];
String tmpDataStr=dataStr;
// process tilde
if (this.getProcessTilde()) tmpDataStr=this.applyTilde(dataStr);
// extract zip code...
if ((mode==2) || (mode==3))
{
if (this.zipCode.length()==0) tmpDataStr=this.extractPrimaryData(tmpDataStr);
primary=createPrimary();
}
dataTMP=this.encode(tmpDataStr);
// structured appended?
byte structuredAppendedChar=(byte) this.parseBits(this.getBits(this.positionOfCode-1,3)+this.getBits(this.numberOfCodes-1,3));
// if structured append
if (this.numberOfCodes>1)
{
// mode back 2 positions all dtaa in the array
for (int i=141;i>=0;i--) dataTMP[i+2]=dataTMP[i];
// add structure append bytes
dataTMP[0]=(byte) this.PAD;
dataTMP[1]=structuredAppendedChar;
}
if (mode>3)
{
// 9 first word into primary message
for (int i =0;(i<9);i++) primary[i+1]=dataTMP[i];
primary[0]=(byte) mode;
// update secondary message
for (int i=9;i<144;i++) dataTMP[i-9]=dataTMP[i];
}
byte[] finalData= new byte[144];
for (int i=0;i<10;i++) finalData[i]=primary[i];
for (int i=20;i<144;i++) finalData[i]=dataTMP[i-20];
// add SEC
this.addReedSolomon(finalData);
int tmpx=0;
int tmpy=0;
boolean even=true;
for (int j=0;j<33;j++)
{
tmpx=0;
if (!even) tmpx=(int) (Xpixels/2);
for (int i=0;i<30;i++)
{
// always black module
//layout[14][16]=-1;
if (layout[i][j]==-1)
{
paintModule(g2,tmpx,tmpy,pattern,this.color);
}
// normal value
if (layout[i][j]>0)
{
car=(int) java.lang.Math.floor((layout[i][j]-1)/6);
bit=layout[i][j]-(car*6);
bitValue=0;
if (layout[i][j]==1)
{
int hh=0;
}
if (bit==1) bitValue=32;
if (bit==2) bitValue=16;
if (bit==3) bitValue=8;
if (bit==4) bitValue=4;
if (bit==5) bitValue=2;
if (bit==6) bitValue=1;
java.awt.Color c=this.color;
//if (car<20) c=java.awt.Color.red;
//else {
// if (car<30) {
// c=java.awt.Color.blue;
// }
//}
if ((finalData[car] & bitValue)>0) paintModule(g2,tmpx,tmpy,pattern,c);
}
tmpx=tmpx+this.Wpixels;
}
even=!even;
tmpy=tmpy+this.Ypixels;
}
// demo
if (d!=1) {
java.util.Calendar calendar=java.util.Calendar.getInstance();
int ml=calendar.get(java.util.Calendar.MILLISECOND);
//for non demo rem out next 6 lines
if (ml<400)
{
g2.setColor(this.backColor);
g2.fillRect(centerX-r6,centerY-r6,r6*2,r6*2);
g2.setColor(this.color);
g2.drawString(""+((char) 68)+((char) 69)+((char) 77)+((char) 79),centerX-r6,centerY);
}
}
}
// rotate and copy final image, if we used a temporary
if (tmpImage!=null) {
Image tmpImage2=tmpImage;
if (rotation!=0) tmpImage2=this.rotate(tmpImage,rotation,prefW,prefH);
if ((autoResize) && ((prefW>this.getSize().width) || (prefH>this.getSize().height))) {
// first try to use full width
int newW=this.getSize().width;
int newH= (int) ((double) (newW*this.prefH)/this.prefW);
// use full height
if (newH>this.getSize().height) {
newH=this.getSize().height;
newW=(int) ((double) (newH*this.prefW)/this.prefH);
}
// copy and schrink image
g.drawImage(tmpImage2,offsetX,offsetY,offsetX+newW,offsetY+newH,0,0,prefW,prefH,null);
} // copy image
else g.drawImage(tmpImage2,offsetX,offsetY,null);
}
}
// function to rotate an area of an image, 90, 180 or 270 degrees
/** rotates an image
*/
protected Image rotate(Image im, int angle,int maxw, int maxh) {
int w=im.getWidth(null);
int h= im.getHeight(null);
if (maxw > w ) maxw=w;
if (maxh > h ) maxh=h;
int[] pixels = new int[w * h];
int[] pixels2 = new int[maxw * maxh];
PixelGrabber pg = new PixelGrabber(im, 0,0, w, h, pixels, 0, w);
try {
pg.grabPixels();
} catch (InterruptedException e) {
System.err.println("interrupted waiting for pixels!");
return null;
}
if ((pg.getStatus() & ImageObserver.ABORT) != 0) {
System.err.println("image fetch aborted or errored");
return null;
}
if (angle==90) {
for (int i = 0; i < maxw; i++) {
for (int j = 0; j < maxh; j++) {
pixels2[(maxh*(maxw-(i+1)))+j]=pixels[(j * w) + i];
}
}
return Toolkit.getDefaultToolkit().createImage(new MemoryImageSource( maxh,maxw,pixels2,0,maxh) ) ;
}
if (angle==180) {
for (int i = 0; i < maxw; i++) {
for (int j = 0; j < maxh; j++) {
pixels2[((maxh-(j+1)) * maxw) + (maxw-(i+1))]=pixels[(j * w) + i];
}
}
return Toolkit.getDefaultToolkit().createImage( new MemoryImageSource(maxw,maxh,pixels2,0,maxw) ) ;
}
if (angle==270) {
for (int i = 0; i < maxw; i++) {
for (int j = 0; j < maxh; j++) {
pixels2[(maxh*i)+(maxh-(j+1))]=pixels[(j * w) + i];
}
}
return Toolkit.getDefaultToolkit().createImage( new MemoryImageSource( maxh,maxw,pixels2,0,maxh) ) ;
}
return null;
}
int [][] table= {
{0,'E',0},
{1,'E',1},
{2,'E',2},
{3,'E',3},
{4,'E',4},
{5,'E',5},
{6,'E',6},
{7,'E',7},
{8,'E',8},
{9,'E',9},
{10,'E',10},
{11,'E',11},
{12,'E',12},
{13,'E',13},
{13,'A',0},
{14,'E',14},
{15,'E',15},
{16,'E',16},
{17,'E',17},
{18,'E',18},
{19,'E',19},
{20,'E',20},
{21,'E',21},
{22,'E',22},
{23,'E',23},
{24,'E',24},
{25,'E',25},
{26,'E',26},
{27,'E',30},
{28,'E',32},
{28,'A',28},
{28,'B',28},
{28,'C',28},
{28,'D',28},
{29,'C',29},
{29,'D',29},
{29,'B',29},
{29,'A',29},
{29,'D',33},
{30,'C',30},
{30,'D',30},
{30,'B',30},
{30,'E',34},
{30,'A',30},
{31,'E',35},
{32,'D',59},
{32,'A',32},
{32,'E',59},
{32,'C',59},
{32,'B',47},
{33,'B',53},
{34,'A',34},
{35,'A',35},
{36,'A',36},
{37,'A',37},
{38,'A',38},
{39,'A',39},
{40,'A',40},
{41,'A',41},
{42,'A',42},
{43,'A',43},
{44,'A',44},
{44,'B',48},
{45,'A',45},
{46,'B',49},
{46,'A',46},
{47,'B',50},
{47,'A',47},
{48,'A',48},
{49,'A',49},
{50,'A',50},
{51,'A',51},
{52,'A',52},
{53,'A',53},
{54,'A',54},
{55,'A',55},
{56,'A',56},
{57,'A',57},
{58,'A',58},
{58,'B',51},
{59,'B',37},
{60,'B',38},
{61,'B',39},
{62,'B',40},
{63,'B',41},
{64,'B',52},
{65,'A',1},
{66,'A',2},
{67,'A',3},
{68,'A',4},
{69,'A',5},
{70,'A',6},
{71,'A',7},
{72,'A',8},
{73,'A',9},
{74,'A',10},
{75,'A',11},
{76,'A',12},
{77,'A',13},
{78,'A',14},
{79,'A',15},
{80,'A',16},
{81,'A',17},
{82,'A',18},
{83,'A',19},
{84,'A',20},
{85,'A',21},
{86,'A',22},
{87,'A',23},
{88,'A',24},
{89,'A',25},
{90,'A',26},
{91,'B',42},
{92,'B',43},
{93,'B',44},
{94,'B',45},
{95,'B',46},
{96,'B',0},
{97,'B',1},
{98,'B',2},
{99,'B',3},
{100,'B',4},
{101,'B',5},
{102,'B',6},
{103,'B',7},
{104,'B',8},
{105,'B',9},
{106,'B',10},
{107,'B',11},
{108,'B',12},
{109,'B',13},
{110,'B',14},
{111,'B',15},
{112,'B',16},
{113,'B',17},
{114,'B',18},
{115,'B',19},
{116,'B',20},
{117,'B',21},
{118,'B',22},
{119,'B',23},
{120,'B',24},
{121,'B',25},
{122,'B',26},
{123,'B',32},
{124,'B',54},
{125,'B',34},
{126,'B',35},
{127,'B',36},
{128,'C',48},
{129,'C',49},
{130,'C',50},
{131,'C',51},
{132,'C',52},
{133,'C',53},
{134,'C',54},
{135,'C',55},
{136,'C',56},
{137,'C',57},
{138,'D',47},
{139,'D',48},
{140,'D',49},
{141,'D',50},
{142,'D',51},
{143,'D',52},
{144,'D',53},
{145,'D',54},
{146,'D',55},
{147,'D',56},
{148,'D',57},
{149,'E',48},
{150,'E',49},
{151,'E',50},
{152,'E',51},
{153,'E',52},
{154,'E',53},
{155,'E',54},
{156,'E',55},
{157,'E',56},
{158,'E',57},
{159,'E',36},
{160,'E',37},
{161,'D',37},
{162,'E',38},
{163,'E',39},
{164,'E',40},
{165,'E',41},
{166,'D',42},
{167,'E',43},
{168,'D',38},
{169,'E',44},
{170,'C',37},
{171,'D',39},
{172,'C',38},
{173,'E',45},
{174,'E',46},
{175,'D',40},
{176,'D',41},
{177,'C',39},
{178,'C',40},
{179,'C',41},
{180,'D',42},
{181,'C',42},
{182,'E',47},
{183,'D',43},
{184,'D',44},
{185,'C',43},
{186,'C',44},
{187,'D',45},
{188,'C',45},
{189,'C',46},
{190,'C',47},
{191,'D',46},
{192,'C',0},
{193,'C',1},
{194,'C',2},
{195,'C',3},
{196,'C',4},
{197,'C',5},
{198,'C',6},
{199,'C',7},
{200,'C',8},
{201,'C',9},
{202,'C',10},
{203,'C',11},
{204,'C',12},
{205,'C',13},
{206,'C',14},
{207,'C',15},
{208,'C',16},
{209,'C',17},
{210,'C',18},
{211,'C',19},
{212,'C',20},
{213,'C',21},
{214,'C',22},
{215,'C',23},
{216,'C',24},
{217,'C',25},
{218,'C',26},
{219,'C',32},
{220,'C',33},
{221,'C',34},
{222,'C',35},
{223,'C',36},
{224,'D',0},
{225,'D',1},
{226,'D',2},
{227,'D',3},
{228,'D',4},
{229,'D',5},
{230,'D',6},
{231,'D',7},
{232,'D',8},
{233,'D',9},
{234,'D',10},
{235,'D',11},
{236,'D',12},
{237,'D',13},
{238,'D',14},
{239,'D',15},
{240,'D',16},
{241,'D',17},
{242,'D',18},
{243,'D',19},
{244,'D',20},
{245,'D',21},
{246,'D',22},
{247,'D',23},
{248,'D',24},
{249,'D',25},
{250,'D',26},
{251,'D',32},
{252,'C',33},
{253,'D',34},
{254,'D',35},
{255,'D',36}
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -