Java tutorial
import java.awt.Graphics; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.awt.image.LookupOp; import java.awt.image.ShortLookupTable; import javax.swing.JFrame; import javax.swing.JPanel; public class MainClass extends JPanel { public void paint(Graphics g) { short[] invert = new short[256]; for (int i = 0; i < invert.length; i++) invert[i] = (short) (255 - i); BufferedImageOp invertOp = new LookupOp(new ShortLookupTable(0, invert), null); BufferedImage clone = invertOp.filter(createImage(), null); g.drawImage(clone, 20, 20, this); } private BufferedImage createImage() { BufferedImage bufferedImage = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB); Graphics g = bufferedImage.getGraphics(); g.drawString("www.java2s.com", 20, 20); return bufferedImage; } public static void main(String[] args) { JFrame frame = new JFrame(); frame.getContentPane().add(new MainClass()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(200, 200); frame.setVisible(true); } }