import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.io.*;
import java.awt.image.*;
class game0703 extends Frame{
PixelGrabber pg;
Color col;
Image img;
int w=500;
int h=500;
double 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 rgb[][]=new int[h][w];
int mx,nx,m,n;
int m1,n1,m2,n2;
int sx,sy;
int j;
String s1,s2,s3,s4;
game0703(){
s1="kasi.jpg";
catchimg(s1);
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];
}
}
s2="meme.png";
catchimg(s2);
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;
}
}
size=7.4;
sx=175;
sy=21;
}
public static void main(String[] args) {
game0703 f = new game0703();
f.setSize(500,500);
f.setBackground(Color.blue) ;
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){public void
windowClosing(WindowEvent e){System.exit(0);}});
}
public void paint( Graphics g ) {
Graphics2D g2 = (Graphics2D)g;
BufferedImage readImage = null;
if (readImage == null){
readImage = new BufferedImage(getWidth(), getHeight(),
BufferedImage.TYPE_INT_BGR);
}
Graphics2D off = readImage.createGraphics();
off.setColor(Color.red);
off.fillRect(0,0,500,500);
mx=1;
nx=1;
for (mx=0;mx<500;mx++){
for (nx=0;nx<500;nx++){
off.setColor(new Color(girlr[mx][nx],girlg[mx][nx],girlb[mx][nx]));
off.fillRect(nx,mx,1,1);
}
}
for (mx=0;mx<h;mx++){
for (nx=0;nx<w;nx++){
m=sy+(int)(mx/size);
n=sx+(int)(nx/size);
if(m<0)m=0;
if(m>499)m=499;
if(n<0)n=499;
if(n>499)n=499;
off.setColor(new Color(memor[mx][nx],memog[mx][nx],memob[mx][nx]));
if (rgb[mx][nx]>50)off.fillRect(n,m,1,1);
}
}
off.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
BasicStroke wideStroke = new BasicStroke(2.0f);
off.setStroke(wideStroke);
if (readImage != null){g2.drawImage(readImage,0,0, this);}
try {
boolean result =
ImageIO.write(readImage, "jpg", new File("sam.jpg"));
} catch (Exception e) {
e.printStackTrace();
}
}
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;
}
}
}
最終更新:2011年02月26日 19:49