Bildauschnitt mit Rechteck wählen

LatinFavourite

Bekanntes Mitglied
Guten Abend,

ich habe ein Programm geschrieben, dass einige Operationen auf ein geladenes Bild anwenden kann. Hierzu soll unter anderem aus dem geladenen Bild ein Auschnitt gewählt werden. Ein entsprechendes Rechteck kann bereits mit der Maus gezeichnet werden, jedoch funktionieren beide Methoden nicht wie gewünscht.

Der Versuch mit dem PixelGrabber und dem anschließenden ImageProducer zeigt einen völlig anderen Auschnitt an, die Methode mit dem Subimage lässt ebenfalls einen Ausschnitt auswählen, jedoch wird dieser stark gezoomt und zeigt mehr als gewünscht.

Hier ein Codeauschnitt:

Java:
class PictureView extends JComponent{
	Image img;
	Dimension size = getSize();
	
	 
	 public static Rectangle actrect;
	
	
	public static boolean paint = false;
	
	
	public PictureView(Image img){
		this.img = img;
		 actrect = new Rectangle(0,0,0,0);
		
		
		this.addMouseListener(new MouseAdapter(){
			@Override
			public void mousePressed(MouseEvent e){
				
				 actrect = new Rectangle(e.getX(),e.getY(),0,0);
				
			}
			
			public void mouseReleased(MouseEvent e){		
			
				repaint();
				paint = true;
			}
		});	
			
		this.addMouseMotionListener(new MouseAdapter(){

			@Override
			public void mouseDragged(MouseEvent e){
				

				int x = e.getX();       
				int y = e.getY();
				
				if(x > actrect.x && y > actrect.y){
					actrect.width = x - actrect.x;
					actrect.height = y- actrect.y;
				}
				
//				System.out.println(x);
//				System.out.println(y);
				
				repaint();
				

			}
		});		
	}

Und hier die Methode, die aus dem gezeichneten Rechteckt den Ausschnitt auswählen soll.

Java:
public Image getImage(){
		
		BufferedImage buff_Image;
		buff_Image = (BufferedImage) img;
		
		BufferedImage subImage;
		subImage = buff_Image.getSubimage((int)PictureView.actrect.x, (int)PictureView.actrect.y, (int)PictureView.actrect.width, (int)PictureView.actrect.height);
		
		Image resultImage = (Image) subImage;
		return resultImage;
		
	}

Ich bin für jeglichen Hilfe dankbar.

Schönen Abend allen noch. :)
 

Ähnliche Java Themen

Neue Themen


Oben