アットウィキロゴ

j1106

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

class game1105 extends Frame{
PixelGrabber pg;
Color col;
Image img;
int w=500;
int h=500;
int size;
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 girlr[][]=new int[h][w];
int girlg[][]=new int[h][w];
int girlb[][]=new int[h][w];
int mx,nx,m,n;
int m1,n1,m2,n2;    
int sx,sy;
int j;
String s1,s2,s3,s4;

int num1,num2,qx,qx1,qx2;
int[][] sample=new int[500][500];
double[][] gsample=new double[500][500];
double[][] psample=new double[500][500];
double[] data=new double[500];
double[][] alpha=new double[500][25];
double[][] galpha=new double[500][25];
double[][] beta=new double[25][25];
double[] gamma=new double[25];

game1105(){  

s1="shinoda.jpg";
catchimg(s1);  

num1=h;
num2=w;

fou(memor);

for (mx=0;mx<500;mx++){
for (nx=0;nx<500;nx++){  
girlr[mx][nx]=hop(gsample[mx][nx]);
}
}

fou(memog);

for (mx=0;mx<500;mx++){
for (nx=0;nx<500;nx++){  
girlg[mx][nx]=hop(gsample[mx][nx]);
}
}

fou(memob);

for (mx=0;mx<500;mx++){
for (nx=0;nx<500;nx++){  
girlb[mx][nx]=hop(gsample[mx][nx]);
}
}





}

public static void main(String[] args) {
game1105 f = new game1105();
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<500;mx++){
for (nx=0;nx<500;nx++){  
g.setColor(new Color(girlr[mx][nx],girlg[mx][nx],girlb[mx][nx]));  
g.fillRect(nx,mx,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;
}

}


public static double seekfou(double[] gamma,int s,int num){
double x,z;
int qx;
x=(double)(s*Math.PI/num);
z=gamma[0]/2;
for (qx=1;qx<25;qx++){
z=z+gamma[qx]*Math.cos(qx*x);
}
return z;
}
public static int hop(double x){
int x1;
x1=(int)x;
if(x1>255)x1=255;
if(x1<0)x1=0;
return x1;
}
public static double seekalpha(int qx,int num,double[] data){
int n,nx;
double x1,y1,z;
double delta;
delta=(double)Math.PI/num;
z=0;
for (n=-num+1;n<num;n++){
nx=n;
if (nx<0)nx=-nx;
x1=nx*delta;
y1=data[nx]*Math.cos(qx*x1);
z=z+delta*y1;
}
z=z/Math.PI;
return z;
}

void fou(int[][] sample){

makefou(sample);

revfou();

}

void makefou(int[][] sample){
  
for (m=0;m<500;m++){

for (n=0;n<num2;n++){
data[n]=sample[m][n];
}

for (qx1=0;qx1<25;qx1++){
alpha[m][qx1]=seekalpha(qx1,num2,data);
}

}

for (qx1=0;qx1<25;qx1++){

for (m=0;m<num1;m++){
data[m]=alpha[m][qx1];
}

for (qx2=0;qx2<25;qx2++){
beta[qx1][qx2]=seekalpha(qx2,num1,data);
}

}

}

void revfou(){

for (m=1;m<num1;m++){
for (qx1=0;qx1<25;qx1++){

for (qx2=0;qx2<25;qx2++){
gamma[qx2]=beta[qx1][qx2];
}

galpha[m][qx1]=seekfou(gamma,m,num1);
}
}

for (m=0;m<num1;m++){
for (n=0;n<num2;n++){

for (qx1=0;qx1<25;qx1++){
gamma[qx1]=galpha[m][qx1];
}

gsample[m][n]=seekfou(gamma,n,num2);
}
}

}


  
}
最終更新:2011年03月08日 02:43