Example usage for java.awt Graphics drawImage

List of usage examples for java.awt Graphics drawImage

Introduction

In this page you can find the example usage for java.awt Graphics drawImage.

Prototype

public abstract boolean drawImage(Image img, int x, int y, ImageObserver observer);

Source Link

Document

Draws as much of the specified image as is currently available.

Usage

From source file:org.zephyrsoft.util.gui.ImagePanel.java

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    if (mustRescaleImage()) {
        calculateScaledImage();//w ww  .  ja  va 2  s  .  co m
    }
    if (scaledImage != null) {
        g.drawImage(scaledImage, x + (int) ((width - scaledImage.getWidth(null)) / 2),
                y + (int) ((height - scaledImage.getHeight(null)) / 2), this);
    } else {
        throw new IllegalStateException("the scaled image was not computed");
    }
}

From source file:DataBufferGrabber.java

/**
 * Perform and time several drawImage() calls with the given parameters
 * and return the number of milliseconds that the operation took.
 *//*from  w ww  .j a  v a  2  s  .c o m*/
private long copyImage(Graphics g, BufferedImage image, int x, int y) {
    long startTime = System.nanoTime();
    // Do the operation several times to make the timings more significant
    for (int i = 0; i < 100; ++i) {
        g.drawImage(image, x, y, null);
    }
    // Make sure any graphics commands in hardware get flushed before
    // stopping the clock
    Toolkit.getDefaultToolkit().sync();
    long endTime = System.nanoTime();
    return (endTime - startTime) / 1000000;
}

From source file:MainClass.java

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);
}

From source file:net.chris54721.infinitycubed.data.Account.java

public void fetchSkin(boolean update) {
    if (nickname != null) {
        LogHelper.info("Fetching skin for player " + getNickname());
        BufferedImage skin = Utils.toBufferedImage(Utils.getImageResource("steve"));
        FileInputStream skinStream = null;
        boolean fetch = true;
        try {//from w  w w. j  a  v  a  2  s.c  om
            File skinFile = Resources.getFile(Resources.ResourceType.SKIN, getNickname() + ".png");
            if (update) {
                URL skinURL = Resources.getUrl(Resources.ResourceType.SKIN, getNickname() + ".png");
                Downloadable skinDownloadable = new Downloadable(skinURL, skinFile);
                if (!skinDownloadable.download())
                    fetch = false;
            } else if (!skinFile.isFile())
                fetch = false;
            if (fetch) {
                skinStream = new FileInputStream(skinFile);
                skin = ImageIO.read(skinStream);
                BufferedImage head = skin.getSubimage(8, 8, 8, 8);
                BufferedImage mask = skin.getSubimage(40, 8, 8, 8);
                skin = new BufferedImage(8, 8, BufferedImage.TYPE_INT_ARGB);
                Graphics resultG = skin.getGraphics();
                resultG.drawImage(head, 0, 0, null);
                resultG.drawImage(mask, 0, 0, null);
            }
            this.skin = skin;
            this.skinHead = skin.getScaledInstance(32, 32, Image.SCALE_DEFAULT);
        } catch (Exception e) {
            LogHelper.error("Couldn't fetch player skin", e);
        } finally {
            if (skinStream != null)
                IOUtils.closeQuietly(skinStream);
        }
    }
}

From source file:contactangle.ImageControl.java

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    if (img != null)
        g.drawImage(img, 0, 0, this);
    else/*  www .  j  a v  a 2 s .c  o m*/
        g.drawString("NO IMAGE", 0, 15);

    g.setColor(Color.RED);

    if (x1 < x2 && y1 < y2)
        g.drawRect(x1, y1, x2 - x1, y2 - y1);
    else if (x1 >= x2 && y1 < y2)
        g.drawRect(x2, y1, x1 - x2, y2 - y1);
    else if (x1 < x2 && y1 >= y2)
        g.drawRect(x1, y2, x2 - x1, y1 - y2);
    else
        g.drawRect(x2, y2, x1 - x2, y1 - y2);

    if (valid && img != null) {

        if (x1 >= x2) {
            int temp = x1;
            x1 = x2;
            x2 = temp;
        }
        if (y1 >= y2) {
            int temp = y1;
            y1 = y2;
            y2 = temp;
        }

        choosenPoints = new ArrayList<Point>();
        for (int y = y1; y < y2; y++) {
            for (int x = x1; x < x2; x++) {
                int pixelData = img.getRGB(x, y);
                if (pixelData == -1)
                    choosenPoints.add(new Point(x, y));
            }
        }

        SimpleRegression reg = new SimpleRegression();
        for (Point p : choosenPoints) {
            reg.addData(p.x, p.y);
        }

        int firstX = choosenPoints.get(0).x;
        int firstY = choosenPoints.get(0).y;
        double slope = reg.getSlope();
        g.setColor(Color.GREEN);
        g.drawLine(firstX, firstY, firstX + (70), firstY + (int) (slope * (70)));
        g.drawLine(firstX, firstY, firstX - (70), firstY - (int) (slope * (70)));

        double contactDegrees = (Math.atan(reg.getSlope()) / (2 * Math.PI)) * 360.0;

        DecimalFormat d = new DecimalFormat("##.###");

        g.drawString("Contact Angle = ", 25, 25);
        g.drawString(d.format(contactDegrees) + " degrees", 25, 38);
    }

}

From source file:uk.co.modularaudio.mads.base.common.ampmeter.BIAmpMeter.java

@Override
public void paint(final Graphics g) {
    if (outBufferedImage != null) {
        g.drawImage(outBufferedImage, 0, 0, null);
    }/*from w w w. j av a 2s  . c om*/
}

From source file:ImageProcessingTest.java

public ImageProcessingFrame() {
    setTitle("ImageProcessingTest");
    setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);

    add(new JComponent() {
        public void paintComponent(Graphics g) {
            if (image != null)
                g.drawImage(image, 0, 0, null);
        }//  w  w w  .ja  va  2  s .co  m
    });

    JMenu fileMenu = new JMenu("File");
    JMenuItem openItem = new JMenuItem("Open");
    openItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            openFile();
        }
    });
    fileMenu.add(openItem);

    JMenuItem exitItem = new JMenuItem("Exit");
    exitItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            System.exit(0);
        }
    });
    fileMenu.add(exitItem);

    JMenu editMenu = new JMenu("Edit");
    JMenuItem blurItem = new JMenuItem("Blur");
    blurItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            float weight = 1.0f / 9.0f;
            float[] elements = new float[9];
            for (int i = 0; i < 9; i++)
                elements[i] = weight;
            convolve(elements);
        }
    });
    editMenu.add(blurItem);

    JMenuItem sharpenItem = new JMenuItem("Sharpen");
    sharpenItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 5.f, -1.0f, 0.0f, -1.0f, 0.0f };
            convolve(elements);
        }
    });
    editMenu.add(sharpenItem);

    JMenuItem brightenItem = new JMenuItem("Brighten");
    brightenItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            float a = 1.1f;
            // float b = 20.0f;
            float b = 0;
            RescaleOp op = new RescaleOp(a, b, null);
            filter(op);
        }
    });
    editMenu.add(brightenItem);

    JMenuItem edgeDetectItem = new JMenuItem("Edge detect");
    edgeDetectItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            float[] elements = { 0.0f, -1.0f, 0.0f, -1.0f, 4.f, -1.0f, 0.0f, -1.0f, 0.0f };
            convolve(elements);
        }
    });
    editMenu.add(edgeDetectItem);

    JMenuItem negativeItem = new JMenuItem("Negative");
    negativeItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            short[] negative = new short[256 * 1];
            for (int i = 0; i < 256; i++)
                negative[i] = (short) (255 - i);
            ShortLookupTable table = new ShortLookupTable(0, negative);
            LookupOp op = new LookupOp(table, null);
            filter(op);
        }
    });
    editMenu.add(negativeItem);

    JMenuItem rotateItem = new JMenuItem("Rotate");
    rotateItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent event) {
            if (image == null)
                return;
            AffineTransform transform = AffineTransform.getRotateInstance(Math.toRadians(5),
                    image.getWidth() / 2, image.getHeight() / 2);
            AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BICUBIC);
            filter(op);
        }
    });
    editMenu.add(rotateItem);

    JMenuBar menuBar = new JMenuBar();
    menuBar.add(fileMenu);
    menuBar.add(editMenu);
    setJMenuBar(menuBar);
}

From source file:ImageDrawingComponent.java

public void paint(Graphics g) {

    Graphics2D g2 = (Graphics2D) g;

    switch (opIndex) {
    case 0: /* copy */
        g.drawImage(bi, 0, 0, null);
        break;//from   w w  w.jav a  2 s .  c om

    case 1: /* scale up using coordinates */
        g.drawImage(bi, 0, 0, w, h, /* dst rectangle */
                0, 0, w / 2, h / 2, /* src area of image */
                null);
        break;

    case 2: /* scale down using transform */
        g2.drawImage(bi, AffineTransform.getScaleInstance(0.7, 0.7), null);
        break;

    case 3: /* scale up using transform Op and BICUBIC interpolation */
        AffineTransform at = AffineTransform.getScaleInstance(1.5, 1.5);
        AffineTransformOp aop = new AffineTransformOp(at, AffineTransformOp.TYPE_BICUBIC);
        g2.drawImage(bi, aop, 0, 0);
        break;

    case 4: /* low pass filter */
    case 5: /* sharpen */
        float[] data = (opIndex == 4) ? BLUR3x3 : SHARPEN3x3;
        ConvolveOp cop = new ConvolveOp(new Kernel(3, 3, data), ConvolveOp.EDGE_NO_OP, null);
        g2.drawImage(bi, cop, 0, 0);
        break;

    case 6: /* rescale */
        RescaleOp rop = new RescaleOp(1.1f, 20.0f, null);
        g2.drawImage(bi, rop, 0, 0);
        break;

    case 7: /* lookup */
        byte lut[] = new byte[256];
        for (int j = 0; j < 256; j++) {
            lut[j] = (byte) (256 - j);
        }
        ByteLookupTable blut = new ByteLookupTable(0, lut);
        LookupOp lop = new LookupOp(blut, null);
        g2.drawImage(bi, lop, 0, 0);
        break;

    default:
    }
}

From source file:MainClass.java

public void paint(Graphics g) {
    BufferedImage img = createImage();

    float ninth = 1.0f / 9.0f;

    float[] blurKernel = { ninth, ninth, ninth, ninth, ninth, ninth, ninth, ninth, ninth };

    BufferedImageOp blurOp = new ConvolveOp(new Kernel(3, 3, blurKernel));

    BufferedImage clone = blurOp.filter(img, null);

    g.drawImage(clone, 20, 20, this);
}

From source file:se.llbit.chunky.world.SkymapTexture.java

@Override
public void setTexture(BufferedImage newImage) {

    if (newImage.getType() == BufferedImage.TYPE_INT_ARGB) {
        image = newImage;/*from  w  w  w .  j  av a 2  s .  com*/
    } else {
        // convert to ARGB
        image = new BufferedImage(newImage.getWidth(), newImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics g = image.createGraphics();
        g.drawImage(newImage, 0, 0, null);
        g.dispose();
    }

    DataBufferInt dataBuffer = (DataBufferInt) image.getRaster().getDataBuffer();
    data = dataBuffer.getData();

    width = image.getWidth();
    height = image.getHeight();
    avgColor = ImageTools.calcAvgColor(image);

    Log.info("Preprocessing skymap texture");
    long start = System.currentTimeMillis();

    // gamma correct the texture

    int segX = 4;
    int segY = 4;
    if (width < segX)
        segX = 1;
    if (height < segY)
        segY = 1;
    TexturePreprocessor[][] preprocessor = new TexturePreprocessor[segX][segY];
    int w = width / segX;
    int h = height / segY;
    for (int i = 0; i < segX; ++i) {
        int x0 = w * i;
        int x1 = x0 + w - 1;
        if ((i + 1) == segX)
            x1 = width - 1;
        for (int j = 0; j < segY; ++j) {
            int y0 = h * j;
            int y1 = y0 + h - 1;
            if ((j + 1) == segY)
                y1 = height - 1;
            preprocessor[i][j] = new TexturePreprocessor(x0, x1, y0, y1);
            preprocessor[i][j].start();
        }
    }

    for (int i = 0; i < segX; ++i) {
        for (int j = 0; j < segY; ++j) {
            try {
                preprocessor[i][j].join();
            } catch (InterruptedException e) {
            }
        }
    }

    long time = System.currentTimeMillis() - start;

    Log.info("Skymap preprocessing took " + time + "ms");

}