Quadratischen Bereich (ausgehend von der Mitte) freistellen

Status
Nicht offen für weitere Antworten.

TSH

Bekanntes Mitglied
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:


Code:
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?
 
S

SlaterB

Gast
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
 
Status
Nicht offen für weitere Antworten.

Oben