import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
class game0526 extends Frame{
int trm,trn;
int trlm[][]=new int[501][501];
int trln[][]=new int[501][501];
PixelGrabber pg;
Color col;
Image img;
int w=500;
int h=500;
int red,green,blue;
int pix[]=new int[w*h];
int memor[][]=new int[h][w];
int memog[][]=new int[h][w];
int memob[][]=new int[h][w];
int wclothr[][]=new int[h][w];
int wclothg[][]=new int[h][w];
int wclothb[][]=new int[h][w];
int clothr[][]=new int[h][w];
int clothg[][]=new int[h][w];
int clothb[][]=new int[h][w];
int gclothr[][]=new int[h][w];
int gclothg[][]=new int[h][w];
int gclothb[][]=new int[h][w];
int girlr[][]=new int[h][w];
int girlg[][]=new int[h][w];
int girlb[][]=new int[h][w];
int rgb[][]=new int[h][w];
int j;
int mx,nx,m,n;
int m1,n1,m2,n2;
int ex,ey;
int mode;
double b1,b2,c1,c2;
String s1,s2,s3,s4;
game0526(){
s4="girl.jpg";
catchimg(s4);
for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
girlr[mx][nx]=memor[mx][nx];
girlg[mx][nx]=memog[mx][nx];
girlb[mx][nx]=memob[mx][nx];
}
}
s1="fuku.jpg";
catchimg(s1);
for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
j=0;
if(memor[mx][nx]<50)j=j+1;
if(memog[mx][nx]<50)j=j+1;
if(memob[mx][nx]<50)j=j+1;
if(j==3)rgb[mx][nx]=100;
}
}
s2="ron.jpg";
catchimg(s2);
for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
clothr[mx][nx]=memor[mx][nx];
clothg[mx][nx]=memog[mx][nx];
clothb[mx][nx]=memob[mx][nx];
if(rgb[mx][nx]<50)clothr[mx][nx]=250;
if(rgb[mx][nx]<50)clothg[mx][nx]=250;
if(rgb[mx][nx]<50)clothb[mx][nx]=250;
}
}
for(mx=0;mx<501;mx++){
for(nx=0;nx<501;nx++){
trcloth(mx,nx);
trlm[mx][nx]=trm;
trln[mx][nx]=trn;
}
}
for(mx=0;mx<500;mx++){
for(nx=0;nx<500;nx++){
trm=trlm[mx][nx];
trn=trln[mx][nx];
wclothr[mx][nx]=clothr[trm][trn];
wclothg[mx][nx]=clothg[trm][trn];
wclothb[mx][nx]=clothb[trm][trn];
}
}
for(mx=0;mx<501;mx++){
for(nx=0;nx<501;nx++){
trgirl(mx,nx);
trlm[mx][nx]=trm;
trln[mx][nx]=trn;
}
}
for(mx=0;mx<500;mx++){
for(nx=0;nx<500;nx++){
trm=trlm[mx][nx];
trn=trln[mx][nx];
gclothr[trm][trn]=wclothr[mx][nx];
gclothg[trm][trn]=wclothg[mx][nx];
gclothb[trm][trn]=wclothb[mx][nx];
}
}
}
public static void main(String[] args) {
game0526 f = new game0526();
f.setSize(700,700);
f.setBackground(Color.blue) ;
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){public void
windowClosing(WindowEvent e){System.exit(0);}});
}
public void paint( Graphics g ) {
g.setColor(Color.blue);
g.fillRect(0,0,700,700);
mx=1;
nx=1;
for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
g.setColor(new Color(girlr[mx][nx],girlg[mx][nx],girlb[mx][nx]));
g.fillRect(nx+100,mx+100,1,1);
}
}
for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
g.setColor(new Color(clothr[mx][nx],clothg[mx][nx],clothb[mx][nx]));
g.fillRect(nx+100,mx+100,1,1);
}
}
}
void catchimg(String s){
img = createImage(w,h);
img = Toolkit.getDefaultToolkit().getImage(s);
pg = new PixelGrabber(img,0,0,w,h,pix,0,w);
try{pg.grabPixels();}catch(InterruptedException ie){}
m=0;
n=0;
for(int i=0;i<w*h;i++){
int p = pix[i];
col=new Color(pix[i]);
red=col.getRed();
green=col.getGreen();
blue=col.getBlue();
memor[m][n]=red;
memog[m][n]=green;
memob[m][n]=blue;
n=n+1;
if (n==w)m=m+1;
if (n==w)n=0;
}
}
void trgirl(int mx,int nx){
double a0,a1,b0,b1;
int x0,x1,y0,y1;
x0=87;
x1=186;
y0=152;
y1=397;
a1=(double)(x1-x0)/300;
a0=x0-a1*100;
trn=(int)(a1*nx+a0);
if(trn<0)trn=0;
if(trn>499)trn=499;
b1=(double)(y1-y0)/300;
b0=y0-b1*100;
trm=(int)(b1*mx+b0);
if(trm<0)trm=0;
if(trm>499)trm=499;
}
void trcloth(int mx,int nx){
double a0,a1,b0,b1;
int x0,x1,y0,y1;
x0=76;
x1=125;
y0=83;
y1=215;
a1=(double)(x1-x0)/300;
a0=x0-a1*100;
trn=(int)(a1*nx+a0);
if(trn<0)trn=0;
if(trn>499)trn=499;
b1=(double)(y1-y0)/300;
b0=y0-b1*100;
trm=(int)(b1*mx+b0);
if(trm<0)trm=0;
if(trm>499)trm=499;
}
}
最終更新:2011年02月24日 19:42