Advertisement
rutera

Noise Image

Oct 19th, 2013
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.66 KB | None | 0 0
  1. import java.awt.Graphics;
  2. import java.awt.event.WindowAdapter;
  3. import java.awt.event.WindowEvent;
  4. import java.awt.image.BufferedImage;
  5. import java.awt.image.ColorModel;
  6. import java.awt.image.DataBuffer;
  7. import java.awt.image.DataBufferByte;
  8. import java.awt.image.IndexColorModel;
  9. import java.awt.image.Raster;
  10. import java.awt.image.WritableRaster;
  11. import java.util.Random;
  12.  
  13. import javax.swing.JComponent;
  14. import javax.swing.JFrame;
  15.  
  16. public class StaticGenerator extends JComponent implements Runnable {
  17.   byte[] data;
  18.  
  19.   BufferedImage image;
  20.  
  21.   Random random;
  22.  
  23.   public void initialize() {
  24.     int w = getSize().width, h = getSize().height;
  25.     int length = ((w + 7) * h) / 8;
  26.     data = new byte[length];
  27.     DataBuffer db = new DataBufferByte(data, length);
  28.     WritableRaster wr = Raster.createPackedRaster(db, w, h, 1, null);
  29.     ColorModel cm = new IndexColorModel(1, 2, new byte[] { (byte) 0, (byte) 255 }, new byte[] {
  30.         (byte) 0, (byte) 255 }, new byte[] { (byte) 0, (byte) 255 });
  31.     image = new BufferedImage(cm, wr, false, null);
  32.     random = new Random();
  33.     new Thread(this).start();
  34.   }
  35.  
  36.   public void run() {
  37.     while (true) {
  38.       random.nextBytes(data);
  39.       repaint();
  40.       try {
  41.         Thread.sleep(1000 / 24);
  42.       } catch (InterruptedException e) { /* die */
  43.       }
  44.     }
  45.   }
  46.  
  47.   public void paint(Graphics g) {
  48.     if (image == null)
  49.       initialize();
  50.     g.drawImage(image, 0, 0, this);
  51.   }
  52.  
  53.   public static void main(String[] args) {
  54.     JFrame f = new JFrame();
  55.     f.add(new StaticGenerator());
  56.     f.setSize(300, 300);
  57.     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  58.     f.setVisible(true);
  59.   }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement