Mit eigenem Programm Bilddateien auslesen

Lukas1234

Neues Mitglied
Hey Leute,
ich bin seit ein paar Monaten dabei ein Verschlüsselungsprogramm für Bilder zu schreiben. Den Verschlüsselungsteil habe ich bereits fertig, allerdings finde ich keine Methode um mit dem Programm den Speicher des Bildes auszulesen. Mit dem JFileChooser habe ich es nicht geschafft.

Etliche Google-Recherchen haben nix ergeben, da man bei "Programm Java Datei Öffnen" nur Dinge zu anderen Themen findet. 🙁

Ich würde mich über ein paar Vorschläge freuen.

Zum Programmieren nutze ich Java Editor.
Das Bildformat um welches es geht ist .bmp

Ich bedanke mich schon mal im Vorraus für Eure Hilfe.
 
Hi, danke für die schnelle Antwort.
Als ich das Programm geplant habe habe ich mir diese Zusammenfassung über das BMP Format durchgelesen:

http://eschumacher.de/Info/I_Skripte/bmp-format.pdf

Also eigentlich will ich alles machen wie du es geschrieben hast. Farbewerte, Größe ...
Die Bilddatei anzuzeigen brauche ich nicht, aber ich verstehe nicht, wie ich meinem Programm sage, dass es den Speicher der Bilddatei ausliest.
Nach der Verschlüsselung soll dann wieder ein Bild erzeugt werden, welches die gleiche Größ etc. hat nur andere Bildwerte. Ich versuche sozusagen das Bild über verändern der Bildwerte zu verschlüsseln.

Auf den Punkt gebracht brauche ich einfach nur ne Möglichkeit den Speicher des Bildes auszulesen um auf den Speicherdump zu kommen. Der Rest sollte kein Problem sein.

Danke
 
Auslesen kannst du Informationen zu Bildern z.B wie folgt :

Java:
public class ImageInfo {
	
	public static void getInfo(String imgPath) throws IOException{
		File file = new File(imgPath);
		
		BufferedImage img = ImageIO.read(file);
		
		System.out.println("Dateiname : " + file.getName() + "\nBreite : " + img.getWidth() + "\nHöhe : " + img.getHeight());
	
	}
	
	public static void main(String[] args) throws IOException {
		ImageInfo.getInfo("F:/Bilder/Dodge.png");
	}

}

Ausgabe :

Dateiname : Dodge.png
Breite : 800
Höhe : 548


Wenn du das Bild selbst manipulieren möchtest musst du dich wesentlich tiefer mit der Materie beschäftigen , bzw um Bilder zu erstellen solltest du dir dann die Java Graphics / Graphics2D api ansehen, insofern du dies mit GUI realisieren möchtest, du kannst natürlich auch über die Konsole Bildpunkte lesen und setzen , dazu

bietet im oberen Fall die Klasse BufferedImage Methoden wie

Code:
img.getRGB(startX, startY, w, h, rgbArray, offset, scansize)

zum auslesen der Farbwerte, und

Code:
img.setRGB(x, y, rgb);

zum Setzen der Farbwerte an.

So könntest du z.B den Farbwert des Pixels an der Stelle x = 20 y = 40 hiermit

Java:
img.setRGB(20, 40, 255);

auf Grau ändern.

Schau dir am besten diese Klassen Image / BufferedImage / ImageIO mal an.
 
Zuletzt bearbeitet:

Zurück
Oben