# Quadratischen Bereich (ausgehend von der Mitte) freistellen



## TSH (6. Okt 2008)

Hallo,

ich rätsel seit gestern wie ich wohl aus einem Bild ein Quadrat mache. Ich möchte quasi ein größtmögliches Quadrat *in die Mitte* des Bildes legen und dieses wie ein Förmchen ausstechen. Bisher hab ich folgendes:



```
private BufferedImage getSquareImage(BufferedImage originalImage) {

  // Ein paar Werte, die man evtl. später brauchen könnte
  int width = originalImage.getWidth();
  int height = originalImage.getHeight();
  int hCenter = Math.round(width / 2);
  int vCenter = Math.round(height / 2);
  int edgeLength = Math.min(width, height);

  // Ein neues Bild mit quadratischen Ausmaßen
  BufferedImage squareImage = new BufferedImage(edgeLength, edgeLength, BufferedImage.TYPE_INT_RGB);

  // Die entscheidende Methode. (0,0) ergibt allerdings nichts vernünftiges.
  // Wie müsste das Bild stattdessen reingezeichnet werden?
  squareImage.createGraphics().drawImage(originalImage, 0, 0, null);
  
  return squareImage;
}
```

Könnte mir da jemand weiterhelfen?


----------



## SlaterB (6. Okt 2008)

schau dir doch in der API die Möglichkeiten an, da gibts eine Variante für dich denke ich



> drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
> Draws as much of the specified area of the specified image as is currently available, scaling it on the fly to fit inside the specified area of the destination drawable surface.



ausprobieren gehört dazu


----------



## Quaxli (6. Okt 2008)

Oder Du wendest das an, was ich Dir hier gezeigt habe


----------

