BufferedImage: getSource() : BufferedImage « java.awt.image « Java by API






BufferedImage: getSource()

 
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.awt.image.FilteredImageSource;
import java.awt.image.RGBImageFilter;

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

public class MainClass extends JPanel {

  public void paint(Graphics g) {
    NegativeFilter nf = new NegativeFilter();

    Image i = createImage(new FilteredImageSource(createImage().getSource(), nf));

    g.drawImage(i, 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);
  }

}

class NegativeFilter extends RGBImageFilter {
  public NegativeFilter() {
    canFilterIndexColorModel = true;
  }

  public int filterRGB(int x, int y, int rgb) {
    return rgb ^ 0x00ffffff;
  }
}

           
         
  








Related examples in the same category

1.BufferedImage.TYPE_INT_RGB
2.new BufferedImage(int width, int height, int imageType)
3.BufferImage emboss
4.BufferedImage: setRGB(int startX, int startY, int w, int h, int[] rgbArray, int offset, int scansize)