Facebook
From jaro, 3 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 63
  1. import java.awt.Canvas;
  2. import java.awt.Graphics;
  3. import java.awt.event.MouseAdapter;
  4. import java.awt.event.MouseEvent;
  5. import java.awt.event.MouseMotionAdapter;
  6. import java.awt.image.BufferedImage;
  7. import java.awt.image.DataBufferInt;
  8. import java.util.logging.Level;
  9. import java.util.logging.Logger;
  10.  
  11. public class PasekSzarości {
  12.  
  13.     Canvas canvas;
  14.     Graphics kredka;
  15.     BufferedImage image;
  16.     int[] tablica;
  17.  
  18.     int wskaznik = 0;
  19.     int kolor = 0;
  20.  
  21.     public PasekSzarości(int x, int y, int width, int height, Main jFrame) {
  22.         canvas = new Canvas();
  23.         canvas.setBounds(x, y, width, height);
  24.         canvas.setVisible(true);
  25.         canvas.addMouseListener(new MouseAdapter() {
  26.             @Override
  27.             public void mousePressed(MouseEvent e) {
  28.                 super.mousePressed(e);
  29.                 int xzmyszy = e.getX();
  30.                 if (xzmyszy > 0 && xzmyszy < canvas.getWidth()) {
  31.                     tablica[wskaznik] = 0x010101 * wskaznik;
  32.                     int xpiksel = (int) (e.getX() * 255.0 / canvas.getWidth());
  33.                     kolor = 0x010101 * xpiksel;
  34.                     wskaznik = xpiksel;
  35.                     tablica[wskaznik] = 0xff0000;
  36.                     kredka.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null);
  37.                 }
  38.             }
  39.         });
  40.         canvas.addMouseListener(new MouseAdapter() {
  41.             @Override
  42.             public void mouseReleased(MouseEvent e) {
  43.                 try {
  44.  
  45.                     super.mouseReleased(e);
  46.  
  47.                     long timerek = System.currentTimeMillis();
  48.                     jFrame.zliczajPiksele();
  49.                     timerek = System.currentTimeMillis() - timerek;
  50.                     System.out.println("czas Stream " + timerek);
  51.                     jFrame.lCzas.setText(timerek + "ms");
  52.  
  53.                     timerek = System.currentTimeMillis();
  54.                     jFrame.zliczajPikseleParralel();
  55.                     timerek = System.currentTimeMillis() - timerek;
  56.                     System.out.println("czas ParralelStream " + timerek);
  57.                     jFrame.lCzasParralelStream.setText(timerek + "ms");
  58.  
  59.                 } catch (NullPointerException ex) {
  60.                     jFrame.textField.setText("Ładnie proszę załadować obraz :)");
  61.                 }
  62.             }
  63.  
  64.         });
  65.         canvas.addMouseMotionListener(new MouseMotionAdapter() {
  66.             @Override
  67.             public void mouseDragged(MouseEvent e) {
  68.                 super.mouseDragged(e);
  69.                 int xzmyszy = e.getX();
  70.                 if (xzmyszy > 0 && xzmyszy < canvas.getWidth()) {
  71.                     tablica[wskaznik] = 0x010101 * wskaznik;
  72.                     int xpiksel = (int) (e.getX() * 255.0 / canvas.getWidth());
  73.                     wskaznik = xpiksel;
  74.                     tablica[wskaznik] = 0xff0000;
  75.                     kredka.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null);
  76.  
  77.                 }
  78.             }
  79.  
  80.         });
  81.         jFrame.add(canvas);
  82.  
  83.         kredka = canvas.getGraphics();
  84.         image = new BufferedImage(0xff, 1, BufferedImage.TYPE_INT_RGB);
  85.  
  86.         tablica = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
  87.         for (int i = 0; i < 0xff; i++) {
  88.             tablica[i] = i * 0x010101;
  89.         }
  90.         tablica[0] = 0xff0000;
  91.         try {
  92.             Thread.sleep(100);
  93.         } catch (InterruptedException ex) {
  94.             Logger.getLogger(PasekSzarości.class.getName()).log(Level.SEVERE, null, ex);
  95.         }
  96.         kredka.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null);
  97.  
  98.     }
  99.  
  100.     public int getKolor() {
  101.         for (int j = 0; j < 190l; j++) {};
  102.         return kolor;
  103.     }
  104.  
  105.     public int getWskaznik() {
  106.         return wskaznik;
  107.     }
  108.  
  109. }
  110.