Aus Image ein Image extrahieren

Status
Nicht offen für weitere Antworten.

Sedalz

Mitglied
Tag zusammen. Ich habe mal eine Frage bezüglich der Klasse Image.

Ich würde gerne aus einem Image-Objekt ein neues Image-Objekt extrahieren ab einer bestimmten Position,
also z.b:

Image 1 hat die Größe 640 * 480 und ich möchte ein Image 2 erstellen, welches das Image 1 von 0/0 bis 320/240 enthält. Wie ist das zu realisieren?
Danke Im Voraus.
 
Code:
public Image extractImage( Image i1 )
{
  BufferedImage i2 = new BufferedImage(320,240,BufferedImage.TYPE_INT_RGB);
  i2.getGraphics().drawImage(i1,0,0,null);
  return i2;
}
Für Bildausschnitte, die nicht bei (0/0) beginnen, kann die Methode drawImage(Image,int,int,int,int,int,int,int,int,ImageObserver) verwendet werden, bei der die Eckpunkte der Ziel- und Quellrechtecke angegeben werden.

Hilf das weiter?
 
Warum so kompliziert wenn es auch einfach geht?

Schau dir mal BufferedImage#getSubimage an. Das ist genau die Methode die du benötigst.
 
Ganz einfach: weil die oben beschriebene Methode mit JEDEM Image funktioniert. Und oft genug hat man ja nicht unbedingt ein BufferedImage zur Hand. Und ehrlich gesagt finde ich einen Zweizeiler statt eines Einzeilers nicht wirklich "unnötig kompliziert". Aber die Geschmäcker sind ja glücklicherweise verschieden... 🙂
 
Ich habe mir mal auf Sun.com die getSubImage Methode von BufferedImage angeschaut und sie scheint mir die einfachere Lösung zu sein. Also danke an euch beide.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben