Bilder einlese und bearbeiten

Status
Nicht offen für weitere Antworten.

TheDestroyer

Aktives Mitglied
Hallo, habe zur Zeit folgende Aufgabe:

Die Kasse GraphicsComponent soll nun so modifiziert werden, dass folgende Aufgaben erfüllt sind:

1. Es ist eine Methode zu implementieren, die ein Bild von einer URL aus dem Internet lädt und ein BufferedImage
zurückgibt. Eine Methode, die das mit einer lokalen Datei macht ist bereits vorhanden und soll als Vorlage dienen.
2. Mit Hilfe dieser beiden Methoden zum Laden eines Bildes sollen im Konstruktor mindestens ein lokales Bild und
eines aus dem Internet geladen werden.
3. In der Methode paint sollen dann beide Bilder plus mindestens eine Linie und ein Kreis gezeichnet werden.

Habe folgenden Code:

Code:
package Tut4;

import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JComponent;


public class GraphicsComponent extends JComponent{

	// Diese Variable könnt ihr erstmal ignorieren.
	private static final long serialVersionUID = 1L;

	public final String STR_IMAGE_LOCAL = "my_picture.png";
	public final String STR_IMAGE_URL = "http://www.gnu.org/graphics/gnu-head-banner.png";


	public GraphicsComponent(){
		// Wenn ihr globale Variablen für eure Animation braucht oder Bilder
		// laden wollt, solltet ihr das hier tun, damit es nicht bei jedem
		// repaint neu geladen werden muss.




	}

	@Override public void paint(Graphics g){
		
		super.paint(g);

		/* TODO
		 * Benutze das Grapphics Objekt g und zeichne mindestens eine Linie, einen
		 * Kreis.
		 */

		/* TODO
		 * Zeichne ein Bild aus dem Internet (z.B. STR_IMAGE_URL).
		 * Implementiere dazu (in Anlehnung an "loadLocalImage(String)") eine
		 * Methode zum laden von Bildern aus dem Internet.
		 */

	}


	private BufferedImage loadLocalImage(String filename){
		try{
			return ImageIO.read(new File(filename));
		}
		catch(IOException e){
			System.err.println("Fehler beim laden des lokalen Bildes "
					+ filename + ": "+e.getMessage());
			return null;
		}
	}
	
	private BufferedImage loadUrlImage(String filename){
		try{
			return ImageIO.read(new File(filename));
		}
		catch(IOException e){
			System.err.println("Fehler beim laden des lokalen Bildes "
					+ filename + ": "+e.getMessage());
			return null;
		}
	}
	

	/**
	 * Diese Methode wird von dem Button "Single Step" oder dem Timer
	 * aufgerufen, der mit "Start Animation" aktiviert wird.
	 */
	public void animate(){
		/* TODO (für überflieger)
		 *
		 * Wenn ihr auf "Single Step" oder "Start Animation" klickt, wird jedes
		 * mal bevor neu gezeichnet wird diese Methode aufgerufen. Diese
		 * Tatsache könnt ihr benutzen um eine kleine Animation zu realisieren.
		 */



	}

}

und

Code:
package Tut4;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.TimerTask;
import java.util.Timer;
import javax.swing.JButton;
import javax.swing.JFrame;

/**
 * Diese Klasse beschreibt den Frame und die Buttons.
 *
 * @author Christian Wasserthal, Lars Stockmann
 */
public class GraphicsGUI{

	/**
	 * Die main()-Methode erzeugt eine Instanz der Klasse GraphicsGUI und lässt
	 * sie anzeigen.
	 * @param args wird ignoriert
	 */
	public static void main(String[] args){
		GraphicsGUI gui = new GraphicsGUI();
		gui.show();
	}

	// Das sind die Variablen einer Instanz
	JFrame frame;
	JButton buttonStep,buttonAnim;
	GraphicsComponent panel;

	/**
	 * Der Constructor initialisiert die Instanzvariablen und startet den
	 * Timer.
	 */
	public GraphicsGUI(){
		// Wir verwenden ein und den selben Listener für alle auftretenden
		// Events. Das werden zum einen GUI-Events sein (also wenn ein Button
		// gedrückt wird) und zum anderen der Timer.
		GUIAction guiAction = new GUIAction();

		// Initialisierung des Panels das ihr Programmieren sollt.
		panel = new GraphicsComponent();

		// initialisierung der buttons
		buttonStep = new JButton("Single Step");
		buttonAnim = new JButton("Start Animation");

		// hinzufügen des ActionListeners der aufgerufen wird, wenn ein Button
		// gedrückt wird.
		buttonStep.addActionListener(guiAction);
		buttonAnim.addActionListener(guiAction);

		// Die Buttons kommen in einen extra Container der im unteren Teil des
		// Fensters zu sehen sein wird.
		Container cont = new Container();
		cont.setLayout(new FlowLayout());
		cont.add(buttonStep);
		cont.add(buttonAnim);

		// initialisierung des Frames
		frame = new JFrame("Grafik GUI");

		// Konfiguration des Frames
		frame.setSize(640,480);
		frame.setLocation(100,50);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// Beschreibung des Layouts
		frame.getContentPane().setLayout(new BorderLayout());
		frame.getContentPane().add(panel,BorderLayout.CENTER);
		frame.getContentPane().add(cont,BorderLayout.SOUTH);

		// hier erstellen wir einen Timer, der dann alle 20ms die Methode
		// "guiAction.run()" aufruft.
		Timer t = new Timer();
		t.scheduleAtFixedRate(guiAction,20,20);
	}

	
	public void show(){
		frame.setVisible(true);
	}

	private class GUIAction extends TimerTask implements ActionListener{

		private boolean running;

		public GUIAction(){
			running=false;
		}

		// ActionListener
		public void actionPerformed(ActionEvent e) {
			if (e.getSource() == buttonAnim){
				running=!running;
				buttonAnim.setText(running?"Stop Animation":"Start Animation");
			}
			else if (e.getSource() == buttonStep && !running){
				panel.animate();
				panel.repaint();
			}
		}

		// TimerTask
		@Override public void run(){
			if (running){
				panel.animate();
				panel.repaint();
			}
		}

	}

}

Leider lädt er mir bisher die Bilder nicht rein? Wie kann ich das denn machen? Wie bekomme ich es hin das später mindestens eine Linie und ein Kreis hinein gezeichnet werden. Kann man das automatisch machen lassen oder muss ich das dann sleber machen.

THX !!!!!
 

VdA

Bekanntes Mitglied
öhm ja :shock:
zimlich viel Code schreib einfach das nötigste
um ein bild zu malen benutzt man Graphics.drawImage()
für eine Linie Graphics.drawLine()
und für einnen Kreis Graphics.drawOval()
 
G

Gast

Gast
ja das hab ich jetzt hinbekommen. soweit ich verstanden hab muss ich auf die bilder, welche ich ladn soll direkt draufmalen. leider lädt er mir die bilder nicht rein. kann mir jemand sagen wie ich es hinbekomme das die beiden bilder hingeladen werden.
THX!!!!

P.S. Sorry für den vielen Code
 

VdA

Bekanntes Mitglied
sowas macht man dublebuffering doch such ma
dafür brauchst du aber ein BufferedImage
 

TheDestroyer

Aktives Mitglied
ich hab doch oben:

public final String STR_IMAGE_LOCAL = "my_picture.png";
angegeben.
wie kann ich den jetzt beim einlesen meiner lokalen datei diesen String benutzen. ICh muss ja bei filename den Pfad eingeben, leider klappt das bei mir net. Laut Aufgabenstellung müsste ja mit den Buttons ja bereits alles klappen, sodass ws an denen ja nicht liegen kann.
Hier nochmal die Methode zum Einlesen. Hoffe ihr könnt mir helfen.
Code:
private BufferedImage loadLocalImage(String filename){
				
		try{
			return ImageIO.read(new File(filename));
		}
		catch(IOException e){
			System.err.println("Fehler beim laden des lokalen Bildes "
					+ filename + ": "+e.getMessage());
			return null;
		}
	}
 

WieselAc

Top Contributor
Wenn du nicht unbedingt ein BufferedImage brauchst, wovon ich mal ausgehe, kannst du das auch ohen den Umweg über File machen:

Code:
 Image picture = new ImageIcon(path).getImage();

malen geht dann einfach mit

Code:
public void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.drawImage(picture, 0, 0, null);
}
 

TheDestroyer

Aktives Mitglied
gehe mal davon aus das ich bei "Image picture = new ImageIcon(path).getImage(); " bei path meinen Dateinamen einsetzten muss, sodass die Initialisierung jtt so aussieht:

Image picture = new ImageIcon("my_picture.png").getImage();
public final String STR_IMAGE_URL = "http://www.gnu.org/graphics/gnu-head-banner.png";

Wenn ich das Prog jetzt aber starte, passiert mal wieder nicht. KAnn mir jemand helfen, der vielleicht weiss wo denn das Prob liegt.
 

TheDestroyer

Aktives Mitglied
oder kann mir wenigstens jemand sagen, ob mein
private BufferedImage loadLocalImage(String filename){
richtig ist. Muss es doch dann in die paint methode einfügen, oder. Aber wie macht man das, sodass das Prog anschliessend auch richtig läuft????
 

WieselAc

Top Contributor
Ja das funzt.


Mal ein Tipp: Gibt mal den absoluten Pfad für dein Bild ein. Dann klappts auch. Dannach kannst du ja immer noch rausfinden wie dein relativer Pfad aussieht.
 

TheDestroyer

Aktives Mitglied
also da klppt bei mir dann leider auch nichts. gebe "C:\test.png"; ein. aber wenn ich das Programm starte, führen die beiden Buttons keine Fkt. aus.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Bilder in .jar Datei laden Java Basics - Anfänger-Themen 10
S Bilder zoomen Java Basics - Anfänger-Themen 0
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
CptK Interface Bilder mit Graphics g zeichnen Java Basics - Anfänger-Themen 7
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Bilder werden nicht angezeigt! Java Basics - Anfänger-Themen 6
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
M Bilder in .Jar exportieren Java Basics - Anfänger-Themen 2
T Bilder in ausführbarer Jar Java Basics - Anfänger-Themen 11
F 2 wechselnde Bilder Java Basics - Anfänger-Themen 4
D Verzögerung des Erscheinens der Bilder Java Basics - Anfänger-Themen 5
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
F Bilder aus jar einlesen Java Basics - Anfänger-Themen 10
J Bilder in Labels aktualisieren Java Basics - Anfänger-Themen 2
T jpeg Bilder zoomen.. Java Basics - Anfänger-Themen 2
C Bilder von Festplatte in Programm hochladen Java Basics - Anfänger-Themen 6
S Wo speicher ich bilder und sounds ab? Java Basics - Anfänger-Themen 4
C Threads Threaded Bilder bearbeiten Java Basics - Anfänger-Themen 8
K Bilder mit Eclipse exportieren Java Basics - Anfänger-Themen 1
J Slideshow zeigt bilder nicht an Java Basics - Anfänger-Themen 3
R Bilder aus Array als anklickbare Objekte Java Basics - Anfänger-Themen 3
K Export nach Jar mit Bilder Java Basics - Anfänger-Themen 2
L Wie bette ich Bilder in eine .jar ein? Java Basics - Anfänger-Themen 4
C Pfad für Bilder angeben Java Basics - Anfänger-Themen 11
B Bilder laden und drauf zugreifen[Eclipse] Java Basics - Anfänger-Themen 9
E ImageJ mehrere Bilder hintereinander bearteiten Java Basics - Anfänger-Themen 2
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
H Bilder ohne Verlust speichern Java Basics - Anfänger-Themen 2
J Ladebalken anzeigen während Bilder geladen werden Java Basics - Anfänger-Themen 2
R Bilder positionieren Java Basics - Anfänger-Themen 5
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
4 4kb bilder Java Basics - Anfänger-Themen 5
Q Pfadangabe für zu speichernde Bilder Java Basics - Anfänger-Themen 2
B Bilder speichern (jpg, gif, jpg) Java Basics - Anfänger-Themen 4
S Bilder einladen Java Basics - Anfänger-Themen 26
B Aus einem Eclipse Projekt eine .jar - keine Bilder drin Java Basics - Anfänger-Themen 7
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
G Bilder in Jar anzeigen lassen Java Basics - Anfänger-Themen 23
T Bilder in der jar-datei Java Basics - Anfänger-Themen 10
H Zahlen Bilder zuordnen möglich? Java Basics - Anfänger-Themen 4
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
J Bilder von Objekten Java Basics - Anfänger-Themen 3
A Bilder in Eclipse speichern Java Basics - Anfänger-Themen 7
J Mit JS, Text und Bilder von Webseite verändern... Java Basics - Anfänger-Themen 10
S Input/Output Text und Bilder laden Java Basics - Anfänger-Themen 5
T Bilder werden in Jar nicht geladen Java Basics - Anfänger-Themen 10
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
D Bilder Laden, mit Eclipse ok, .jar nicht Java Basics - Anfänger-Themen 5
F Bilder aus .jar datei laden Java Basics - Anfänger-Themen 1
M Applet soll Bilder aus Ordner lesen Java Basics - Anfänger-Themen 9
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
F Bilder enfügen und Bewegen Java Basics - Anfänger-Themen 6
I Drehbare bilder in 3D Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
T JTextPane - setText kein kein neuladen der Bilder? Java Basics - Anfänger-Themen 8
A Bilder in Eclipse Java Basics - Anfänger-Themen 8
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
N Bilder Objekten zuweisen Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
N jar kann Bilder nicht finden(?) Java Basics - Anfänger-Themen 4
S Spiel automat -Bilder vergleichen Java Basics - Anfänger-Themen 3
R Gif Bilder flimmern Java Basics - Anfänger-Themen 10
P Signiertes JAR aber keine Bilder o0 Java Basics - Anfänger-Themen 6
S Bilder der Diashow werden in anderen Bildern angezeigt Java Basics - Anfänger-Themen 3
G Bilder aus dem Projekt Verzeichnis werden n. angezeigt Java Basics - Anfänger-Themen 7
C Bilder von Server zu Server kopieren über Webdav(Sardine) Java Basics - Anfänger-Themen 5
K Bilder "langsam" laden Java Basics - Anfänger-Themen 4
FreddyStepp Bilder zusammenfügen Java Basics - Anfänger-Themen 7
B GUI-Bilder einfügen Java Basics - Anfänger-Themen 40
S Bilder vergleichen Java Basics - Anfänger-Themen 6
B Kann man im Thread Bilder laden? Java Basics - Anfänger-Themen 8
S Wo speichere ich Bilder für Applets (Netbeans) Java Basics - Anfänger-Themen 5
J Mehrere Bilder laden Java Basics - Anfänger-Themen 6
D Bilder einfügen Java Basics - Anfänger-Themen 8
W Bilder einfügen? Java Basics - Anfänger-Themen 2
S Mehrere Bilder bewegen Java Basics - Anfänger-Themen 5
B Bilder zeichnen Java Basics - Anfänger-Themen 2
D Bilder in JFrame laden Java Basics - Anfänger-Themen 8
L Frage bzgl. Threads beim Bilder laden Java Basics - Anfänger-Themen 3
S Bilder in AWT Java Basics - Anfänger-Themen 7
J java applets bilder? Java Basics - Anfänger-Themen 11
manunana89 Bilder auf JFrame/beste Möglichkeit??? Java Basics - Anfänger-Themen 5
K Bilder werden nicht angeziegt !!! Java Basics - Anfänger-Themen 2
max56 Bilder ausgeben Java Basics - Anfänger-Themen 21
K Bilder/Dateien aus package einlesen Java Basics - Anfänger-Themen 14
N Bilder verkleiner ausgeben Java Basics - Anfänger-Themen 6
G Bilder und Kattegorien Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben