//Example09
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
public class Example09 extends Frame{
Image img01;
//Main
public static void main(String ar[]){
Frame f=new Example09();
f.setTitle("Round images");
f.setSize(new Dimension(640,400));
f.setVisible(true);
}
//Parts set
Example09(){
img01=getToolkit().getImage("ICO_020.gif");
addWindowListener(new WinAdapter());
}
//Close
class WinAdapter extends WindowAdapter{
public void windowClosing(WindowEvent we){System.exit(0);}
}
//Paint
public void update(Graphics g){
paint(g);
}
public void paint(Graphics g){
int w,h;
Image img;
PixelGrabber pg=new PixelGrabber(img01,0,0,-1,-1,true);
try{
if(pg.grabPixels()){
w=pg.getWidth();
int[] op=(int[]) pg.getPixels();
int[] np=(int[]) new int[w*w];
g.drawImage(img01,0,100,this);
for(int y=0;y<w;y++){
for(int x=0;x<w;x++) np[(w-1-y)+x*w]=op[x+y*w];
}
img=createImage(new MemoryImageSource(w,w,np,0,w));
g.drawImage(img,50,100,this);
for(int y=0;y<w;y++){
for(int x=0;x<w;x++) np[(w-1-x)+(w-1-y)*w]=op[x+y*w];
}
img=createImage(new MemoryImageSource(w,w,np,0,w));
g.drawImage(img,100,100,this);
for(int y=0;y<w;y++){
for(int x=0;x<w;x++) np[y+(w-1-x)*w]=op[x+y*w];
}
img=createImage(new MemoryImageSource(w,w,np,0,w));
g.drawImage(img,150,100,this);
}
}catch(InterruptedException ie){}
}
}