How to draw an Oval image in a JLabel using Graphics?

3

The detail of my problem is that I need to draw an oval image on a JLabel, I do not have much experience in Graphics until now this is what I have, I hope you can help me.

class imagePanel extends JLabel {

    private BufferedImage buffImage = null;

    private void drawFingerImage(int nWidth, int nHeight, byte[] buff) {
        buffImage = new BufferedImage(nWidth, nHeight, BufferedImage.TYPE_BYTE_GRAY);
        buffImage.getRaster().setDataElements(0, 0, nWidth, nHeight, buff);
        Graphics g = buffImage.createGraphics();
        g.drawImage(buffImage, 0, 0, 140, 150, null);
        g.dispose();
        repaint();
    }

    public void paintComponent(Graphics g) {
        g.drawImage(buffImage, 0, 0, this);
    }
}

    
asked by Miguel Osorio 14.08.2016 в 17:33
source

1 answer

1

Well the answer to this question was very simple.

g.setClip (new java.awt.geom.Ellipse2D.Float (0f, 0f, 210, 200));

class imagePanel extends JLabel {

private BufferedImage buffImage = null;

private void drawFingerImage(int nWidth, int nHeight, byte[] buff) {
    buffImage = new BufferedImage(nWidth, nHeight, BufferedImage.TYPE_BYTE_GRAY);
    buffImage.getRaster().setDataElements(0, 0, nWidth, nHeight, buff);
    Graphics g = buffImage.createGraphics();
    g.drawImage(buffImage, 0, 0, 140, 150, null);
    g.dispose();
    repaint();
}

public void paintComponent(Graphics g) {
    //Aquí se agrega la línea
    g.setClip(new java.awt.geom.Ellipse2D.Float(0f, 0f, 210, 200));
    g.drawImage(buffImage, 0, 0, this);
}

}

Already with this method the image of the footprint becomes round

    
answered by 10.09.2016 / 17:44
source