- import java.awt.Canvas;
- import java.awt.Graphics;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.awt.event.MouseMotionAdapter;
- import java.awt.image.BufferedImage;
- import java.awt.image.DataBufferInt;
- import java.util.logging.Level;
- import java.util.logging.Logger;
- public class PasekSzarości {
- Canvas canvas;
- Graphics kredka;
- BufferedImage image;
- int[] tablica;
- int wskaznik = 0;
- int kolor = 0;
- public PasekSzarości(int x, int y, int width, int height, Main jFrame) {
- canvas = new Canvas();
- canvas.setBounds(x, y, width, height);
- canvas.setVisible(true);
- canvas.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- super.mousePressed(e);
- int xzmyszy = e.getX();
- if (xzmyszy > 0 && xzmyszy < canvas.getWidth()) {
- tablica[wskaznik] = 0x010101 * wskaznik;
- int xpiksel = (int) (e.getX() * 255.0 / canvas.getWidth());
- kolor = 0x010101 * xpiksel;
- wskaznik = xpiksel;
- tablica[wskaznik] = 0xff0000;
- kredka.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null);
- }
- }
- });
- canvas.addMouseListener(new MouseAdapter() {
- @Override
- public void mouseReleased(MouseEvent e) {
- try {
- super.mouseReleased(e);
- long timerek = System.currentTimeMillis();
- jFrame.zliczajPiksele();
- timerek = System.currentTimeMillis() - timerek;
- System.out.println("czas Stream " + timerek);
- jFrame.lCzas.setText(timerek + "ms");
- timerek = System.currentTimeMillis();
- jFrame.zliczajPikseleParralel();
- timerek = System.currentTimeMillis() - timerek;
- System.out.println("czas ParralelStream " + timerek);
- jFrame.lCzasParralelStream.setText(timerek + "ms");
- } catch (NullPointerException ex) {
- jFrame.textField.setText("Ładnie proszę załadować obraz :)");
- }
- }
- });
- canvas.addMouseMotionListener(new MouseMotionAdapter() {
- @Override
- public void mouseDragged(MouseEvent e) {
- super.mouseDragged(e);
- int xzmyszy = e.getX();
- if (xzmyszy > 0 && xzmyszy < canvas.getWidth()) {
- tablica[wskaznik] = 0x010101 * wskaznik;
- int xpiksel = (int) (e.getX() * 255.0 / canvas.getWidth());
- wskaznik = xpiksel;
- tablica[wskaznik] = 0xff0000;
- kredka.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null);
- }
- }
- });
- jFrame.add(canvas);
- kredka = canvas.getGraphics();
- image = new BufferedImage(0xff, 1, BufferedImage.TYPE_INT_RGB);
- tablica = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();
- for (int i = 0; i < 0xff; i++) {
- tablica[i] = i * 0x010101;
- }
- tablica[0] = 0xff0000;
- try {
- Thread.sleep(100);
- } catch (InterruptedException ex) {
- Logger.getLogger(PasekSzarości.class.getName()).log(Level.SEVERE, null, ex);
- }
- kredka.drawImage(image, 0, 0, canvas.getWidth(), canvas.getHeight(), null);
- }
- public int getKolor() {
- for (int j = 0; j < 190l; j++) {};
- return kolor;
- }
- public int getWskaznik() {
- return wskaznik;
- }
- }