Showing posts with label image. Show all posts
Showing posts with label image. Show all posts

Java simple image magnifier tooltip


Sometime when we play with images...i mean here a lot of images, like we let user choose an image from 500 images in a JFrame and all images show at the same time without any scrollbar, it can give user a little problem if the image too small. So, how can user make a good choice. This give me some idea to built my own image tooltip. This is a simple tooltip. It will enlarge image when someone hover mouse cursor on it.Image below is a result from program below.


Before you compile and execute it, you should download all images below. After that place them at same location with this java source file.

Love_Music_by_jovincent.jpg

Leafs_1_by_NerghaL.jpg

Hancock-1611.jpg

matrix.jpg

********************************************************************
COMPLETE SOURCE CODE FOR : ImageToolTip.java
********************************************************************


import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JFrame;

import java.awt.GridLayout;
import java.awt.Graphics;

import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

public class ImageToolTip
{
public static void main(String[]args)
{
PanelImage imageA=new PanelImage("matrix.jpg");

PanelImage imageB=new PanelImage("Hancock-1611.jpg");

PanelImage imageC=new PanelImage("Leafs_1_by_NerghaL.jpg");

PanelImage imageD=new PanelImage("Love_Music_by_jovincent.jpg");

JFrame myMainWindow=new JFrame("Image Tool Tip");
myMainWindow.setResizable(false);
myMainWindow.getContentPane().setLayout(new GridLayout(2,2));
myMainWindow.getContentPane().add(imageA);
myMainWindow.getContentPane().add(imageB);
myMainWindow.getContentPane().add(imageC);
myMainWindow.getContentPane().add(imageD);

myMainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myMainWindow.setSize(100,100);
myMainWindow.setLocationRelativeTo(null);
myMainWindow.setVisible(true);
}
}

class PanelImage extends JPanel implements MouseListener
{
ImageIcon temp;
ImageMagnifier im;

public PanelImage(String a)
{
addMouseListener(this);
temp=new ImageIcon(a);
}

public void paint(Graphics g)
{
super.paint(g);
g.drawImage(temp.getImage(),0,0,getSize().width,getSize().height,this);
}

public void mouseClicked(MouseEvent event)
{
}

public void mouseEntered(MouseEvent event)
{
im=new ImageMagnifier(temp,getSize().width,getSize().height,event.getXOnScreen(),event.getYOnScreen());
}

public void mouseExited(MouseEvent event)
{
im.dispose();
}

public void mousePressed(MouseEvent event)
{
}

public void mouseReleased(MouseEvent event)
{
}
}

class ImageMagnifier extends JFrame
{
ImageIcon temp;

public ImageMagnifier(ImageIcon imageFile,int width,int height,int x,int y)
{
setUndecorated(true);
temp=imageFile;
setLocation(x,y);
setSize(width*9,height*9);
setVisible(true);
}

public void paint(Graphics g)
{
super.paint(g);
g.drawImage(temp.getImage(),0,0,getSize().width,getSize().height,this);
}
}


********************************************************************
JUST COMPILE AND EXECUTE IT
********************************************************************

Java scale image

Sephiroth_by_Wen_JR.jpg



Complete source code below will show you, how to scale an image in java using AffineTransform class. It will scale base on x and y axis.

************************************************************************
COMPLETE SOURCE CODE FOR : ScaleImage.java
************************************************************************


import java.awt.Image;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.BorderLayout;
import java.awt.Dimension;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.awt.geom.AffineTransform;

import javax.swing.JScrollPane;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JPanel;
import javax.swing.ImageIcon;

public class ScaleImage extends JPanel implements ActionListener
{
JScrollPane scrollBar;
JPanel panelB;
JButton button;
JTextField textFieldX;
JTextField textFieldY;
JFrame myWindow;
ImageIcon ii;

AffineTransform at=new AffineTransform();

Image myImage;

double x=0.3;
double y=0.3;

public ScaleImage()
{
//CHANGE Sephiroth_by_Wen_JR.jpg TO IMAGE THAT YOU WANT
myImage=Toolkit.getDefaultToolkit().getImage("Sephiroth_by_Wen_JR.jpg");

ii=new ImageIcon(myImage);

JLabel labelX=new JLabel("X : ");
JLabel labelY=new JLabel("Y : ");
textFieldX=new JTextField("0.3",10);
textFieldY=new JTextField("0.3",10);
button=new JButton("Refresh");

button.addActionListener(this);

panelB=new JPanel();
panelB.add(labelX);
panelB.add(textFieldX);
panelB.add(labelY);
panelB.add(textFieldY);
panelB.add(button);

setPreferredSize(new Dimension((int)(ii.getIconWidth()*x),(int)(ii.getIconHeight()*y)));
scrollBar=new JScrollPane(this);

myWindow=new JFrame("Scale image");
myWindow.getContentPane().setLayout(new BorderLayout());
myWindow.getContentPane().add(scrollBar,BorderLayout.CENTER);
myWindow.getContentPane().add(panelB,BorderLayout.SOUTH);
myWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWindow.setSize(500,500);
myWindow.setLocationRelativeTo(null);
myWindow.setVisible(true);
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==button)
{
x=Double.parseDouble(textFieldX.getText());
y=Double.parseDouble(textFieldY.getText());

setPreferredSize(new Dimension((int)(ii.getIconWidth()*x),(int)(ii.getIconHeight()*y)));

myWindow.repaint();
scrollBar.revalidate();
}
}

public void paint(Graphics g)
{
at.setToScale(x,y);
Graphics2D g2d=(Graphics2D)g;
g2d.drawImage(myImage,at,this);
}

public static void main(String[]args)
{
ScaleImage si=new ScaleImage();
}
}


************************************************************************
JUST COMPILE AND EXECUTE
Note : Make sure Sephiroth_by_Wen_JR.jpg locate at same location with this source file
************************************************************************

Set JTextField background image

Complete source code below will show you, how to set image background in a JTextField. You can download image (textFieldBackgroundImage.jpg) that use in source code at below.

*******************************************************************
COMPLETE SOURCE CODE FOR : SetJTextFieldBackgroundImage.java
*******************************************************************


import javax.swing.*;

import java.awt.*;

public class SetJTextFieldBackgroundImage extends JTextField
{
public SetJTextFieldBackgroundImage()
{
JFrame frame=new JFrame("Set JTextField background image");
frame.add(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,65);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
}

public void paint(Graphics g)
{
setOpaque(false);

//Image that will be set as JTextField background
//I suggest, image that will be use is blur...
//If image is locate at other location, you must put it's full location address.
//For example : C:\\Documents and Settings\\evergreen\\Desktop\\textFieldBackgroundImage.jpg
ImageIcon ii=new ImageIcon("textFieldBackgroundImage.jpg");
Image i=ii.getImage();
g.drawImage(i,0,0,this);
super.paint(g);
}

public static void main(String[]args)
{
SetJTextFieldBackgroundImage sjtfbi=new SetJTextFieldBackgroundImage();
}
}


*******************************************************************
JUST COMPILE AND EXECUTE IT
*******************************************************************



textFieldBackgroundImage.jpg

Set JTextArea background image

Complete source code below will show you, how to set image background in a JTextArea. You can download image (textAreaBackground.jpg) that use in source code at below.

***********************************************************************
COMPLETE SOURCE CODE FOR : AddImageBackgroundInJTextArea.java
***********************************************************************


/**
*AddImageBackgroundInJTextArea will extends JTextArea class.
*So it also inherit all method from JTextArea
*It mean, we can use it directly.For example, setOpaque(false)..
**/
import javax.swing.*;

import java.awt.*;

public class AddImageBackgroundInJTextArea extends JTextArea
{
public AddImageBackgroundInJTextArea()
{
//Create a window using JFrame with title ( Add image background in JTextArea )
JFrame frame=new JFrame("Add image background in JTextArea");

//Add JTextArea into JFrame
frame.add(this);

//Set default close operation for JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Set JFrame size
frame.setSize(500,500);

//Make JFrame center
frame.setLocationRelativeTo(null);

//Make JFrame visible
frame.setVisible(true);
}

//Override JTextArea paint method
//It enable us to paint JTextArea background image
public void paint(Graphics g)
{
//Make JTextArea transparent
setOpaque(false);

//Make JTextArea line wrap
setLineWrap(true);

//Make JTextArea word wrap
setWrapStyleWord(true);

//Get image that we use as JTextArea background
ImageIcon ii=new ImageIcon("textAreaBackground.jpg");
Image i=ii.getImage();

//Draw JTextArea background image
g.drawImage(i,0,0,null,this);

//Call super.paint. If we don't do this...We can't see JTextArea
super.paint(g);
}

public static void main(String[]args)
{
AddImageBackgroundInJTextArea aibijta=new AddImageBackgroundInJTextArea();
}
}


***********************************************************************
JUST COMPILE AND EXECUTE IT
***********************************************************************



textAreaBackground.jpg

Put image on JLabel

Complete source code below will show you, how to put image on JLabel.



JLabelImage.jpg


************************************************************************
COMPLETE SOURCE CODE FOR : JLabelImage.java
************************************************************************


import javax.swing.JLabel;
import javax.swing.JFrame;
import javax.swing.ImageIcon;

import java.awt.Toolkit;

public class JLabelImage
{
public static void main(String[]args)
{
//Create image icon from your image file
//You must change location for your image file
//My image file is locate at : C:\Documents and Settings\evergreen\Desktop
ImageIcon ii=new ImageIcon("C:\\Documents and Settings\\evergreen\\Desktop\\JLabelImage.jpg");

//Create a label with your image file
JLabel label=new JLabel(ii);

//Create a window using JFrame with title ( Put image on JLabel )
JFrame frame=new JFrame("Put image on JLabel");

//Add created label into JFrame
frame.add(label);

//Set default close operation for JFrame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Set JFrame size
frame.setSize(400,400);

//Make JFrame visible. So we can see it.
frame.setVisible(true);
}
}


************************************************************************
JUST COMPILE AND EXECUTE IT
************************************************************************

Draw image in JFrame

Source code below will show you, how to draw image in JFrame. Image that will be use is drawImageIntoJFrame.jpg like below


drawImageIntoJFrame.jpg


********************************************************************
COMPLETE SOURCE CODE FOR : DrawImageOnJFrame.java
********************************************************************


import javax.swing.JFrame;
import javax.swing.ImageIcon;

import java.awt.Image;
import java.awt.Graphics;
import java.awt.Toolkit;

public class DrawImageOnJFrame extends JFrame
{
Image imageToBeDraw;
ImageIcon ii;

public DrawImageOnJFrame()
{
//set JFrame title
super("Draw Image On JFrame");

//Get image. You must change image location follow to image location in your computer.
imageToBeDraw=Toolkit.getDefaultToolkit().getImage("C:\\Documents and Settings\\evergreen\\Desktop\\drawImageIntoJFrame.jpg");

//Create an ImageIcon object
ii=new ImageIcon(imageToBeDraw);

//set close operation for JFrame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//set JFrame size follow the image size
setSize(ii.getIconWidth(),ii.getIconHeight());

//make you JFrame cannot resizable
setResizable(false);

//make JFrame visible. So we can see it.
setVisible(true);
}

public void paint(Graphics g)
{
//This will draw drawImageIntoJFrame.jpg into JFrame
g.drawImage(imageToBeDraw,0,0,this);
}

public static void main(String[]args)
{
DrawImageOnJFrame diojf=new DrawImageOnJFrame();
}
}


********************************************************************
JUST COMPILE AND EXECUTE IT
********************************************************************

Put image as jframe background

Put image as jframe background


bg.jpg



Source code below will make a jframe with bg.jpg as it's background image.

********************************************************
COMPLETE SOURCE CODE FOR : PutImageOnJFrame.java
********************************************************


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.FlowLayout;

public class PutImageOnJFrame extends JPanel
{
public PutImageOnJFrame()
{
setOpaque(false);
setLayout(new FlowLayout());
}

public static void main(String[]args)
{
JFrame myFrame=new JFrame("Put Image");
JButton button1=new JButton("Sample 1");
JButton button2=new JButton("Sample 2");
PutImageOnJFrame c=new PutImageOnJFrame();
c.add(button1);
c.add(button2);
myFrame.add(c);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setSize(400,400);
myFrame.setVisible(true);
}

public void paint(Graphics g)
{ //IT DEPEND ON YOUR PICTURE AND PUT IT'S LOCATION IN
Image a=Toolkit.getDefaultToolkit().getImage("E:\\_JAVA_\\---SOURCE CODE---\\bg.jpg");
g.drawImage(a,0,0,getSize().width,getSize().height,this);
super.paint(g);
}

//THANKS FOR WATCHING
}


********************************************************
JUST COMPILE AND EXECUTE IT.
Note : Before that, you must know your image location. Copy and paste your image location into Image a=Toolkit.getDefaultToolkit().getImage(PASTE_IN_THIS);
********************************************************

Image In Java (JPG, GIF, PNG)

Image In Java (JPG, GIF, PNG)
(Copy And Paste Source Code Below Into Wordprocessing Software Like Notepad. Save it as java file. For file name, just use file name like given. Compile and execute it)


sample_picture.jpg

Note : Before you can compile and execute java source code below, save sample_picture.jpg above at same location with your source code and make sure it's name is sample_picture.jpg

READ A PICTURE FILE WITH FORMAT JPG, GIF OR PNG IN JAVA

***********************************************

COMPLETE SOURCE CODE FOR ReadImageFileInJava.java

***********************************************


import java.awt.Image;
import java.awt.Toolkit;

public class ReadImageFileInJava
{
public static void main(String[]args)
{
//READ AN IMAGE FILE, sample_picture.jpg
//METHOD getImage() CAN READ IMAGE FILE WITH FORMAT gif, jpg and png
Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");
}
}


GET WIDTH AND HEIGHT FOR AN IMAGE IN JAVA

***********************************************

COMPLETE SOURCE CODE FOR ReadImageFileInJava.java

***********************************************


import java.awt.Image;
import javax.swing.ImageIcon;

import java.awt.Toolkit;

public class ReadImageFileInJava
{
public static void main(String[]args)
{
//READ AN IMAGE FILE, sample_picture.jpg
//METHOD getImage() CAN READ IMAGE FILE WITH FORMAT gif, jpg and png
Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");

ImageIcon b=new ImageIcon(a);

//GET PICTURE'S WIDTH
int c=b.getIconWidth();
System.out.println("WIDTH : "+c+" pixels");

//GET PICTURE'S HEIGHT
int d=b.getIconHeight();
System.out.println("HEIGHT : "+d+" pixels");
}
}


PUT IMAGE INTO A CONTAINER IN JAVA

Note : When you want to draw image into a container, you must overwrite method paint for the container. After that you can use method drawImage from Graphics class to draw image for you. You can see it at the end of source code below.

***********************************************

COMPLETE SOURCE CODE FOR ReadImageFileInJava.java

***********************************************


import java.awt.Graphics;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

public class ReadImageFileInJava
{
public static void main(String[]args)
{
//READ AN IMAGE FILE, sample_picture.jpg
//METHOD getImage() CAN READ IMAGE FILE WITH FORMAT gif, jpg and png
Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");

ImageIcon b=new ImageIcon(a);

//GET PICTURE'S WIDTH
int c=b.getIconWidth();
System.out.println("WIDTH : "+c+" pixels");

//GET PICTURE'S HEIGHT
int d=b.getIconHeight();
System.out.println("HEIGHT : "+d+" pixels");

FrameWithPicture e=new FrameWithPicture();
e.setSize(c,d);
e.setVisible(true);
e.setResizable(false);
}
}

//CLASS FrameWithPicture
class FrameWithPicture extends Frame
{
//FOR FRAME CLOSE BUTTON
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

public FrameWithPicture()
{
//FOR FRAME'S TITLE
super("DISPLAY IMAGE");

//ADD WINDOW LISTENER FOR FRAME
addWindowListener(wl);
}

//PAINT IMAGE(sample_picture.jpg) INTO FRAME
//OVERWRITE METHOD PAINT
public void paint(Graphics g)
{
super.paint(g);
Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");
g.drawImage(a, 0, 0,null);
}
}


SCALE IMAGE IN JAVA

***********************************************

COMPLETE SOURCE CODE FOR ScaleImageInJava.java

***********************************************


import java.awt.geom.AffineTransform;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

public class ScaleImageInJava
{
public static void main(String[]args)
{
FrameWithPicture e=new FrameWithPicture();
e.setSize(400,400);
e.setVisible(true);
//e.setResizable(false);
}
}

//CLASS FrameWithPicture
class FrameWithPicture extends Frame
{
//FOR FRAME CLOSE BUTTON
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

public FrameWithPicture()
{
//FOR FRAME'S TITLE
super("DISPLAY IMAGE");

//ADD WINDOW LISTENER FOR FRAME
addWindowListener(wl);
}

//PAINT IMAGE(sample_picture.jpg) INTO FRAME
public void paint(Graphics g)
{
Graphics2D g2d=(Graphics2D)g;
AffineTransform at=new AffineTransform();

//THIS WILL SCALE THE IMAGE
//YOU CAN TRY CHANGE THIS VALUE
//CURRENT VALUE IS 1 AND 1
at.scale(1,1);

Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");
g2d.drawImage(a,at,this);
}
}


SHEAR IMAGE IN JAVA

***********************************************

COMPLETE SOURCE CODE FOR ShearImageInJava.java

***********************************************


import java.awt.geom.AffineTransform;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

public class ShearImageInJava
{
public static void main(String[]args)
{
FrameWithPicture e=new FrameWithPicture();
e.setSize(400,400);
e.setVisible(true);
}
}

//CLASS FrameWithPicture
class FrameWithPicture extends Frame
{
//FOR FRAME CLOSE BUTTON
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

public FrameWithPicture()
{
//FOR FRAME'S TITLE
super("DISPLAY IMAGE");

//ADD WINDOW LISTENER FOR FRAME
addWindowListener(wl);
}

//PAINT IMAGE(sample_picture.jpg) INTO FRAME
public void paint(Graphics g)
{
Graphics2D g2d=(Graphics2D)g;
AffineTransform at=new AffineTransform();

//THIS WILL SHEAR THE IMAGE
//YOU CAN TRY CHANGE THIS VALUE
//CURRENT VALUE IS 0.2 AND 1
at.shear(0.2,1);

Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");
g2d.drawImage(a,at,this);
}
}


TRANSLATE IMAGE IN JAVA (CHANGE IMAGE LOCATION)

***********************************************

COMPLETE SOURCE CODE FOR TranslateImageInJava.java

***********************************************


import java.awt.geom.AffineTransform;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

public class TranslateImageInJava
{
public static void main(String[]args)
{
FrameWithPicture e=new FrameWithPicture();
e.setSize(400,400);
e.setVisible(true);
}
}

//CLASS FrameWithPicture
class FrameWithPicture extends Frame
{
//FOR FRAME CLOSE BUTTON
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

public FrameWithPicture()
{
//FOR FRAME'S TITLE
super("DISPLAY IMAGE");

//ADD WINDOW LISTENER FOR FRAME
addWindowListener(wl);
}

//PAINT IMAGE(sample_picture.jpg) INTO FRAME
public void paint(Graphics g)
{
Graphics2D g2d=(Graphics2D)g;
AffineTransform at=new AffineTransform();

//THIS WILL TRANSLATE THE IMAGE
//YOU CAN TRY CHANGE THIS VALUE
//CURRENT VALUE IS 20 AND 60
at.translate(20,60);

Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");
g2d.drawImage(a,at,this);
}
}


ROTATE IMAGE IN JAVA (ANGLE OF ROTATION IS IN RADIANS VALUE)

***********************************************

COMPLETE SOURCE CODE FOR RotateImageInJava.java

***********************************************


import java.awt.geom.AffineTransform;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

public class RotateImageInJava
{
public static void main(String[]args)
{
FrameWithPicture e=new FrameWithPicture();
e.setSize(400,400);
e.setVisible(true);
}
}

//CLASS FrameWithPicture
class FrameWithPicture extends Frame
{
//FOR FRAME CLOSE BUTTON
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

public FrameWithPicture()
{
//FOR FRAME'S TITLE
super("DISPLAY IMAGE");

//ADD WINDOW LISTENER FOR FRAME
addWindowListener(wl);
}

//PAINT IMAGE(sample_picture.jpg) INTO FRAME
public void paint(Graphics g)
{
Graphics2D g2d=(Graphics2D)g;
AffineTransform at=new AffineTransform();

//THIS WILL ROTATE THE IMAGE
//YOU CAN TRY CHANGE THIS VALUE
//THIS VALUE IS BASE ON radians value(ANGLE OF THE ROTATION IS IN RADIANS)
//YOU ALSO CAN SET IT TO NEGATIVE VALUE LIKE -Math.PI/10
at.rotate(Math.PI/10);

Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");
g2d.drawImage(a,at,this);
}
}


CONVERT IMAGE INTO GRAYSCALE IN JAVA

***********************************************

COMPLETE SOURCE CODE FOR GrayscaleImage.java

***********************************************


import java.awt.Graphics;
import java.awt.Frame;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.ImageIcon;

public class GrayscaleImage
{
public static void main(String[]args)
{
//READ AN IMAGE FILE, sample_picture.jpg
//METHOD getImage() CAN READ IMAGE FILE WITH FORMAT gif, jpg and png
Image a=Toolkit.getDefaultToolkit().getImage("sample_picture.jpg");

ImageIcon b=new ImageIcon(a);

//GET PICTURE'S WIDTH
int c=b.getIconWidth();
System.out.println("WIDTH : "+c+" pixels");

//GET PICTURE'S HEIGHT
int d=b.getIconHeight();
System.out.println("HEIGHT : "+d+" pixels");

FrameWithPicture e=new FrameWithPicture();
e.setSize(c,d);
e.setVisible(true);
e.setResizable(false);
}
}

//CLASS FrameWithPicture
class FrameWithPicture extends Frame
{
//FOR FRAME CLOSE BUTTON
WindowListener wl=new WindowAdapter()
{
public void windowClosing(WindowEvent evt)
{
System.exit(0);
}
};

public FrameWithPicture()
{
//FOR FRAME'S TITLE
super("DISPLAY IMAGE");

//ADD WINDOW LISTENER FOR FRAME
addWindowListener(wl);
}

//PAINT IMAGE(sample_picture.jpg) INTO FRAME
public void paint(Graphics g)
{
super.paint(g);
ImageIcon d=new ImageIcon("sample_picture.jpg");
Image a=d.getImage();

int imageWidth=d.getIconWidth();//GET IMAGE'S WIDTH
int imageHeight=d.getIconHeight();//GET IMAGE'S HEIGHT

//CREATE BufferedImage OBJECT AND SET TYPE OF CREATED IMAGE IS GRAYSCALE(BufferedImage.TYPE_BYTE_GRAY)
BufferedImage bi=new BufferedImage(imageWidth,imageHeight,BufferedImage.TYPE_BYTE_GRAY);
Graphics g2=bi.getGraphics();
g2.drawImage(a,0,0,null);//draw color image(a) into buffered image(bi)

g.drawImage(bi, 0, 0,null);//draw buffered image(bi) into frame
}
}

RELAXING NATURE VIDEO