Aus Bildern teile herausschneiden

Status
Nicht offen für weitere Antworten.

mdoemli

Bekanntes Mitglied
Hallo zusammen,

kann mir vielleicht eine Klasse nennen mit welcher ich aus einem Bild bestimmte abschnitte herausschneiden kann und neu anzeigen kann.

Vielen Dank,

Max
 

mdoemli

Bekanntes Mitglied
Guten Morgen,

möchte mich nochmal melden, da ich schon so weit nach hinten gerutscht bin.
Kann mir keiner einen Tipp geben wie ich es machen kann, nur einen bestimmten Pixel Bereich von einem Bild anzeigen lassen kann?

Gruß,

mdoemli
 
B

Beni

Gast
Guck dir die Graphics.drawImage-Befehle genauer an.
Guck dir BufferedImage.getSubimage an.

-> Lies die API :roll: :wink:
 

thE_29

Top Contributor
Mh, du erstellst dir ein BufferedImage und schreibst dann einen gewissen Teilschnitt wieder reinpinseln!!

Nur musst du glaube ich die Pixel halt reinhaun....
 

mdoemli

Bekanntes Mitglied
Hallo zusammen,

eigentlich müsste es doch reichen wenn ich mit der Methode
drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
arbeite.

Also
Code:
public void init(){
	  	try {	
	  			image = getImage(new URL(getDocumentBase(), "http://miramonte.homelinux.net/portal/pic/muc2.jpg"));
	  			
	  	} catch(Exception ioe) {
	  			System.out.println("Fehler beim erstellen des Bild-Pfades");
	  		}
	  	}
	
	 public void paint (Graphics g) {
	 	
	 	g.drawImage( image, 2400, 1667, 3174, 695, this );
	 	
		
	 }

Das Problem ist jetzt wird garnichts mehr angezeigt.
Das mit den Koordinaten hab ich so verstanden.
x und y => Punkt links unten
height und weidth => Vom Punkt aus wieviel noch gezeichnet werden soll

Gruß,

mdoemli
 

thE_29

Top Contributor
Von wo ist das die paint Methode???


Du würdest dir jetzt deine Komponenten übermalen!
 

Dreezard

Bekanntes Mitglied
Draws as much of the specified image as has already been scaled to fit inside the specified rectangle.

Nein nicht ganz...

x und y bestimmen wo das Bild gezeichnet werden soll.
height und width geben an wie groß das bild sein soll. Also es wird auf die große skaliert.
 

mdoemli

Bekanntes Mitglied
Paint ist für ein Applet.
Ok verstanden mit drawImage funktioniert das nicht.
Also doch getSubImage.

Hab ihr da ein kleines Beispiel?
 

Dreezard

Bekanntes Mitglied
Dir würde eher die Methode:
Code:
drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
helfen.

So zu benutzen:

dx1, dy1, dx2, dy2 -> geben an wie groß das ausgeschnittene Stück ANGEZEIGT werden soll (Wobei dx1, dy1 der links obere und dx2, dy2 der rechts untere punkt sind)

sx1, sy1, sx2, sy2 - > bestimmen den Ausschnit aus dem Bild der angezeigt werden soll (gleiches system wie oben)

EDIT2:
x = 100 bedeutet 100 pixel von links (entlang der x-Achse, wie bei der Mathematik)
y = 100 bedeutet 100 pixel von oben (in die mathematisch falsche Richtung der y-Achse)

EDIT:
Bsp.: Bild mit 100x100. Es soll die linke untere Ecke von 50x50 pixel angezeigt werden. Die soll aber so groß wie das Bild aussehen.
Code:
 g.drawImage( image, 0,0, 100, 100, 0, 50, 50, 100,  this );
Es wird also die linke untere Ecke genommen (50x50) und auf 100x100 skaliert.
 

mdoemli

Bekanntes Mitglied
Dreezard erstmal Danke,

funktioniert super.
Jetzt zeichnet er halt die Punkte nicht mehr auf die Karte, das liegt aber wahrscheinlich daran das die Pixel Koordinaten ja nicht mehr mit dem alten Bild übereinstimmen oder?

Ist jetzt schon so, das die Koordinaten der linken oberen Ecke des neuen Bildes 0, 0 sind?

Gruß,

mdoemli
 

Dreezard

Bekanntes Mitglied
1.: Wie genau meinst du die Frage? du kennst die dx1, dy1, dx2, dy2 Wehrte verändern und so das ausgeschnittene Bild an eine bestimmte Position setzten.

2.: Das Bild an sich hat IMHO keine eigenen Koordinaten, aber das objekt auf das du es zeichnest. Und die Wehrte sind unverändert. Also links oben 0,0 wie du schon richtig sagtest
 

mdoemli

Bekanntes Mitglied
Also hab jetzt alles hinbekommen,

nochmals Danke an alle die geholfen haben.
Vielleich braucht jab mal einer so was ähnliches, also hier der Code:

Code:
 public void init(){
	  	try {	
	  			image = getImage(new URL(getDocumentBase(), "http://miramonte.homelinux.net/portal/pic/muc2.jpg"));
	  			
	  	} catch(Exception ioe) {
	  			System.out.println("Fehler beim erstellen des Bild-Pfades");
	  		}
	  	}
	
	 public void paint (Graphics g) {
	 	getImageSize();
	
	 	int dx2  = max_x_int - min_x_int;
		int dy2  = max_y_int - min_y_int;
		
	 	g.drawImage( image, 0, 0, dx2+2*frame, dy2+2*frame, min_x_int-frame, min_y_int-frame, max_x_int+frame, max_y_int+frame, this  );
		readKoord(g, dx2, dy2);
		
	 }
	 public void getImageSize(){
	 	String getParam		=	"([^;]+)";
	 	try { 
			
				 URL url = new URL(getCodeBase(), "http://miramonte.homelinux.net/portal/applets/trackingtool.txt");
				 InputStream in = url.openStream();
				 BufferedReader read = new BufferedReader(new InputStreamReader(in));
			
			double min_x = 1000.0, max_x = 0.0, min_y = 1000.0, max_y = 0.0;
			String min_x_tmp = "";
			String min_y_tmp = "";
			String max_x_tmp = "";
			String max_y_tmp = "";
			double x_tmp_double	 = 0.0;
			double y_tmp_double	 = 0.0;
			String text = "";
			double tmp = 0;
			int index   = 0;
			
			Pattern regex = Pattern.compile(getParam);
		
			
				while((text = read.readLine()) != null){
			
				Matcher match = regex.matcher(text);
				int counter = 0;
				
					while(match.find()){
						
						if(counter == 0){
							counter++;
							x_tmp_string = match.group();
							x_tmp_double = new Double(x_tmp_string).doubleValue();
							
								if(x_tmp_double < min_x) {
									if(getXPixel(x_tmp_double) < 0){
										//nichts
									}else{
										min_x = x_tmp_double;
									}
								}
								if(x_tmp_double > max_x) {
									if(getXPixel(x_tmp_double) < 0){
										//nichts
									}else{
										max_x = x_tmp_double;
									}
								}

						}else if(counter == 1){
							counter++;
							y_tmp_string = match.group();					
							y_tmp_double = new Double(y_tmp_string).doubleValue();
							
							
								
								if(y_tmp_double > max_y) {
									if(getYPixel(y_tmp_double) < 0){
										//nichts
									}else{
										max_y = y_tmp_double;
									}
								}
								if(y_tmp_double < min_y) {
									if(getYPixel(y_tmp_double) < 0){
										//nichts
									}else{
										min_y = y_tmp_double;
									}
									
								}						
						}
					}
				}
				int tmp_y = 0;
				min_x_int = getXPixel(min_x);
				max_x_int = getXPixel(max_x);
				min_y_int = getYPixel(min_y);
				max_y_int = getYPixel(max_y);
				if(min_y_int > max_y_int){
					tmp_y = min_y_int;
					min_y_int = max_y_int;
					max_y_int = tmp_y;
				}

			} catch (Exception e) {
				System.out.println("Fehler beim lesen der Koordinaten aus LogFile"+e);
			}	
	 }

Gruß,

mdoemli
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
W Swing Hilfe beim Einbinden von Bildern in einem JFrame AWT, Swing, JavaFX & SWT 8
S NullPointer Exception beim Laden von Bildern AWT, Swing, JavaFX & SWT 11
9 Swing Registrierte Knöpfe mit Bildern werden nicht angezeigt AWT, Swing, JavaFX & SWT 3
R Liste mit Bildern AWT, Swing, JavaFX & SWT 3
B Swing Dynamische JList mit Bildern AWT, Swing, JavaFX & SWT 4
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
H Swing Menü mit Bildern AWT, Swing, JavaFX & SWT 2
M Applet mit Bildern AWT, Swing, JavaFX & SWT 2
A AWT Nach dem generieren von bildern verschwinden diese wieder AWT, Swing, JavaFX & SWT 9
T 2D-Grafik Rotieren von Bildern AWT, Swing, JavaFX & SWT 3
N Double Buffern von BILDERN AWT, Swing, JavaFX & SWT 6
K Überblenden von Bildern AWT, Swing, JavaFX & SWT 14
D Problem mit unterschiedlichen Ladezeiten von Bildern / Blockieren der UI AWT, Swing, JavaFX & SWT 5
R Problem beim Anzeigen von Bildern auf JInternalFrame AWT, Swing, JavaFX & SWT 6
G Wasserzeichen in Bildern feststellen AWT, Swing, JavaFX & SWT 6
M 2D-Grafik Offscreen-Rendern von Bildern AWT, Swing, JavaFX & SWT 2
B Zeichnen von Bildern auf JPanel aus eigenem Objekt AWT, Swing, JavaFX & SWT 19
S Ordner mit Bildern laden AWT, Swing, JavaFX & SWT 2
Hausmeister JTable mit Bildern - Performance AWT, Swing, JavaFX & SWT 5
M JTabel mit Bildern AWT, Swing, JavaFX & SWT 2
A SWT Table mit Bildern und Checkboxes AWT, Swing, JavaFX & SWT 4
T Dynamisches hinzufügen und entfernen von Bildern AWT, Swing, JavaFX & SWT 3
E AWT Kleine Hilfestellung bei Bildern in Mediatracker AWT, Swing, JavaFX & SWT 7
B Einfaches JScrollPane mit Bildern füllen AWT, Swing, JavaFX & SWT 2
S Fläche mit einzelnen Bildern erstellen AWT, Swing, JavaFX & SWT 3
M Schlechte Qualität beim skalieren von Bildern AWT, Swing, JavaFX & SWT 10
B Anzeigen von Bildern AWT, Swing, JavaFX & SWT 4
T Variable Menge an Bildern außerhalb paint() zeichnen? AWT, Swing, JavaFX & SWT 2
O Zwischen mehreren Bildern wechseln AWT, Swing, JavaFX & SWT 6
S Probl. bei Java Programm - Dialog zum Bearbeiten von Bildern AWT, Swing, JavaFX & SWT 4
M probs mit einbinden von bildern AWT, Swing, JavaFX & SWT 7
E JAR will nicht mit Bildern, Recherche im forum erfolglos AWT, Swing, JavaFX & SWT 3
R JPanel mit Bildern als jpg abspeichern AWT, Swing, JavaFX & SWT 9
G Problem mit dem Einbinden von bildern AWT, Swing, JavaFX & SWT 10
N Problem mit URL in Verbindung mit Bildern AWT, Swing, JavaFX & SWT 17
P Zwei Fragen zu Bildern in Applets AWT, Swing, JavaFX & SWT 2
M GUI mit Bildern AWT, Swing, JavaFX & SWT 3
T Problem beim Laden von Bildern AWT, Swing, JavaFX & SWT 14
E Probleme mit Pfadangaben bei Einfügen von Bildern (Eclipse) AWT, Swing, JavaFX & SWT 4
L Problem mit dem Übereinanderzeichnen von Bildern AWT, Swing, JavaFX & SWT 6
CptK Funktionsgraphen effizient zeichnen und nur Teile von JPanel erneuern AWT, Swing, JavaFX & SWT 2
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
T Swing Einzelne Teile eines Textes färben? AWT, Swing, JavaFX & SWT 10
N Teile des GUI verschwinden AWT, Swing, JavaFX & SWT 8
Avalarion SWT Listener auf Label oder Text Teile AWT, Swing, JavaFX & SWT 10
Developer_X Teile eines Bildes in ein Image stecken AWT, Swing, JavaFX & SWT 9
R Menu-Fenster - Teile von Fenster tauschen AWT, Swing, JavaFX & SWT 3
G Dialog "übermalt" Teile des Frames AWT, Swing, JavaFX & SWT 20

Ähnliche Java Themen


Oben