Cómo llenar de color fuera de una forma (un óvalo)

Anju Maaka:

Quiero ser capaz de disponer de un BufferedImage, utilizando una instancia de Graphics2D, y Color de relleno fuera de una forma. Si esto era una forma como un rectángulo que sería fácil, pero la Forma I necesidad de trabajar con un círculo.

Es fácil de llenar un círculo con color, simplemente escribiendo:

Graphics2D g2d = <my_image>.createGraphics();
...
g2d.fillOval(x, y, width, height);

Sin embargo, lo que quiero es lo contrario de esto. En lugar de llenar el interior del óvalo defained por los números (x, y, anchura, altura) Quiero llenar todo fuera de ella.

He tenido muy poco éxito con esto. La única cosa que viene a la mente, incluso podría estar llegando enormes arcos alrededor del espacio Quiero que el círculo para ocupar, por la que estoy teniendo un tiempo difícil averiguar la matemáticas para calcular eso.

EDIT: La razón por la que no puedo acaba de llenar toda la imagen y luego pintar el círculo después, es porque lo que es estar en el círculo no es un solo color, sino que quiere tomar una imagen (cualquier imagen, como una foto de mí mismo ) y ser capaz de añadir un solo color alrededor de un círculo en el centro de esa imagen. Así que lo que está en el medio del círculo ya está ahí antes de pintar alrededor de ella, y que no es algo pintado por código en el primer lugar.

Arnaud:

Aquí es un ejemplo basado en la respuesta de Java contra fillRect (llenado todo exterior de dicho rectángulo) .

Se utiliza el restar método de java.awt.geom.Area.

        Area outter = new Area(new Rectangle(0, 0, img.getWidth(), img.getHeight()));
        int x = (img.getWidth() / 4) ;
        int y = (img.getHeight() / 4);
        Ellipse2D.Double inner = new Ellipse2D.Double(x,y, img.getWidth()/2, img.getHeight()/2);
        outter.subtract(new Area(inner));// remove the ellipse from the original area

        g2d.setColor(Color.BLACK);
        g2d.fill(outter);

Sin cultivo (es decir, sin la g2d.fill(outter)parte):

introducir descripción de la imagen aquí

Con cultivo (parte exterior llena de negro):

introducir descripción de la imagen aquí

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=192991&siteId=1
Recomendado
Clasificación