Friday, March 6, 2009

PROGRAM TO ROTATE AN IMAGE BY 90 DEG>>

Here is code :

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

public class rotat extends Applet implements ActionListener
{
Image img,imag,img90,img180,img270;
int i,j,k;
int flag,iw,ih,pixels[],a[],rgb[];
int R1[],G1[],B1[];
int rotate_red[][],rotate_green[][],rotate_blue[][];

Button load,Rotate1,Rotate2,Rotate3,Rotate4;

public void init()
{
load = new Button("Load Image");
Rotate1 = new Button("2");
Rotate2 = new Button("1");
Rotate3 = new Button("3");

add(load);

add(Rotate2);
add(Rotate1);
add(Rotate3);

load.addActionListener(this);
Rotate1.addActionListener(this);
Rotate2.addActionListener(this);
Rotate3.addActionListener(this);

}

public void actionPerformed(ActionEvent ae)
{
String source = (String)ae.getActionCommand();

if(source.equals("Load Image"))
{
img = getImage(getDocumentBase(),"real.jpg");

iw = img.getWidth(null);
ih = img.getHeight(null);
pixels = new int[iw * ih];
PixelGrabber pg = new PixelGrabber(img,0,0,iw,ih,pixels,0,iw);
try
{
pg.grabPixels();
}
catch(Exception e) {}

rgb = new int[iw * ih];
R1 = new int[iw * ih];
G1 = new int[iw * ih];
B1 = new int[iw * ih];

img = createImage(new MemoryImageSource(iw,ih,pixels,0,iw));

repaint();
}
else if(source.equals("2"))
{
for (i=0; i {
rgb[i] = pixels[i];
R1[i] = (rgb[i] >> 16) & 0xff;
G1[i] = (rgb[i] >> 8) & 0xff;
B1[i] = (rgb[i] >> 0) & 0xff;
}

rotate_red = new int[ih][iw];
rotate_green = new int[ih][iw];
rotate_blue = new int[ih][iw];

k = 0;
for(i = 0;i < ih;i++)
{
for(j = 0;j < iw;j++)
{
rotate_red[i][j] = R1[k];
rotate_green[i][j] = G1[k];
rotate_blue[i][j] = B1[k];

k++;
}
}

k = 0;
for(i = 0;i < iw;i++)
{
for(j = ih-1;j >= 0;j--)
{
R1[k] = rotate_red[j][iw-1-i];
G1[k] = rotate_green[j][iw-1-i];
B1[k] = rotate_blue[j][iw-1-i];

k++;
}
}

a = new int[iw * ih];

for(i=0;i {
if (R1[i] > 255) R1[i] = 255;
if (R1[i] < 0) R1[i] = 0;
if (G1[i] > 255) G1[i] = 255;
if (G1[i] < 0) G1[i] = 0;
if (B1[i] > 255) B1[i] = 255;
if (B1[i] < 0) B1[i] = 0;

a[i] = (rgb[i] & 0xff000000) | (R1[i]<<16) | (G1[i] << 8) | (B1[i] <<0);
}
imag = createImage(new MemoryImageSource(iw,ih,a,0,iw));

repaint();
}
else if(source.equals("1"))
{
for (i=0; i {
rgb[i] = pixels[i];
R1[i] = (rgb[i] >> 16) & 0xff;
G1[i] = (rgb[i] >> 8) & 0xff;
B1[i] = (rgb[i] >> 0) & 0xff;
}

rotate_red = new int[ih][iw];
rotate_green = new int[ih][iw];
rotate_blue = new int[ih][iw];

k = 0;
for(i = 0;i < ih;i++)
{
for(j = 0;j < iw;j++)
{
rotate_red[i][j] = R1[k];
rotate_green[i][j] = G1[k];
rotate_blue[i][j] = B1[k];

k++;
}
}

k = 0;
for(i = ih -1;i >= 0;i--)
{
for(j = iw-1;j >= 0;j--)
{
R1[k] = rotate_red[i][j];
G1[k] = rotate_green[i][j];
B1[k] = rotate_blue[i][j];

k++;
}
}

a = new int[iw * ih];

for(i=0;i {
if (R1[i] > 255) R1[i] = 255;
if (R1[i] < 0) R1[i] = 0;
if (G1[i] > 255) G1[i] = 255;
if (G1[i] < 0) G1[i] = 0;
if (B1[i] > 255) B1[i] = 255;
if (B1[i] < 0) B1[i] = 0;

a[i] = (rgb[i] & 0xff000000) | (R1[i]<<16) | (G1[i] << 8) | (B1[i] <<0);
}
imag = createImage(new MemoryImageSource(iw,ih,a,0,iw));

repaint();
}
else if(source.equals("2"))
{
for (i=0; i {
rgb[i] = pixels[i];
R1[i] = (rgb[i] >> 16) & 0xff;
G1[i] = (rgb[i] >> 8) & 0xff;
B1[i] = (rgb[i] >> 0) & 0xff;
}

rotate_red = new int[ih][iw];
rotate_green = new int[ih][iw];
rotate_blue = new int[ih][iw];

k = 0;
for(i = 0;i < ih;i++)
{
for(j = 0;j < iw;j++)
{
rotate_red[i][j] = R1[k];
rotate_green[i][j] = G1[k];
rotate_blue[i][j] = B1[k];

k++;
}
}

k = 0;
for(i = iw - 1;i >=0;i--)
{
for(j = 0;j < ih;j++)
{
R1[k] = rotate_red[i][j];
G1[k] = rotate_green[i][j];
B1[k] = rotate_blue[i][j];

k++;
}
}

a = new int[iw * ih];

for(i=0;i {
if (R1[i] > 255) R1[i] = 255;
if (R1[i] < 0) R1[i] = 0;
if (G1[i] > 255) G1[i] = 255;
if (G1[i] < 0) G1[i] = 0;
if (B1[i] > 255) B1[i] = 255;
if (B1[i] < 0) B1[i] = 0;

a[i] = (rgb[i] & 0xff000000) | (R1[i]<<16) | (G1[i] << 8) | (B1[i] <<0);
}
imag = createImage(new MemoryImageSource(iw,ih,a,0,iw));

repaint();
}

}

// public void update() {}

public void paint(Graphics g)
{
g.drawImage(img,20,50,this);
g.drawImage(imag,400,50,this);

}

}

JAVA PROGRAMME FOR THRESHOLDING OF AN IMAGE

An image made up of different RGB component is
threshold to just two values black and white.




import java.applet.*;
import java.awt.*;
import java.awt.image.*;

public class threshhold extends Applet
{
Dimension d;
Image img;
int iw, ih;
int pixels[];
int w, h;
int rgb,r,g,b;

public void init()
{
d = getSize();
w = d.width;
h = d.height;

try{
img = getImage(getDocumentBase(),"real.jpg");
MediaTracker t = new MediaTracker(this);
t.addImage(img, 0);
t.waitForID(0);
iw = img.getWidth(null);
ih = img.getHeight(null);
pixels = new int[iw * ih];
PixelGrabber pg = new PixelGrabber(img, 0, 0, iw, ih,pixels, 0, iw);
pg.grabPixels();
}catch(InterruptedException e){};


int a[]= new int[iw*ih];
for(int i=0;i<(iw*ih);i++)
{
rgb = pixels[i];
if(rgb<(-7469172))
{
a[i]=0;
}
else
{
a[i]=255<<24;
}
}
img = createImage(new MemoryImageSource(iw,ih,a,0,iw));
}

public void paint(Graphics g)
{
g.drawImage(img, 0, 0, null);
}
}

JAVA PROGRAM FOR NEGATIVE OF AN IMAGE

This is java program to convert image
to its corresponding negative image.
compile below programme in jcreator le,pro.

import java.applet.*;
import java.awt.*;
import java.awt.image.*;

public class sunneg extends Applet
{
Dimension d;

int iw, ih;

int w, h1,y;
int x,i,j,temp,bnum;


Image img,imag;
int pixels[],a[],b[],c[],arr[],z[],h[];

int hist[] = new int[256];
int hc[] = new int[256];
int max_hist = 0;

public void init()
{
d = getSize();
w = d.width;
h1 = d.height;
y=0;
try{
img = getImage(getDocumentBase(),"real.jpg");
MediaTracker t = new MediaTracker(this);
t.addImage(img, 0);
t.waitForID(0);
iw = img.getWidth(null);
ih = img.getHeight(null);
pixels = new int[iw * ih];
PixelGrabber pg = new PixelGrabber(img, 0, 0, iw, ih,pixels, 0, iw);
pg.grabPixels();
}catch(InterruptedException e){};

int x=0,y=0;
int a[]= new int[iw*ih];
for(int i=0;i<(iw*ih);i++)
{
int rgb = pixels[i];
rgb =(int)(255-rgb);
//int r = 0xff - (rgb >> 16) & 0xff;
//int g = 0xff - (rgb >> 8) & 0xff;
//int b = 0xff - rgb & 0xff;
//int k = (int) (.56 * g + .33 * r + .11 * b);
//int r= rgb>>16;
/*int g= rgb>>8;
int b=rgb;
r= 255-r;
g=255-g;
b=255-b;
//a[i] = (0xff000000 | r<< 16 | g << 8 | b);
a[i] = ( r<< 16 | g << 8 | b);*/
a[i]=(int)(255-rgb);
int r = 0xff - (rgb >> 16) & 0xff;
int g = 0xff - (rgb >> 8) & 0xff;
int b = 0xff - rgb & 0xff;
r = (int)(255-r);
g = (int)(255-g);
b = (int)(255-b);
int k = (int) (.56 * g + .33 * r + .11 * b);
a[i] = (0xff000000 | r<< 16 | g << 8 | b);


}
img = createImage(new MemoryImageSource(iw,ih,a,0,iw));
}

public void paint(Graphics g)
{
g.drawImage(img, 0, 0, null);
}
}

and then run html code in jcreator: