Bild (File) komplett serialisieren

Status
Nicht offen für weitere Antworten.
F

fox112

Gast
Hallo,
nach langem rumprobieren hab ich mich jetzt entschieden die Experten hier um Hilfe zu bitten.

Zum Problem:
Ich habe einige Bilder (JPGs) auf dem Dateisystem gespeichert.
In einem Array des Typs java.io.File habe ich die Referenzen auf die Bilder gespeichert.

Nun möchte ich diese Bilder abspeichern (serialisieren).
Jedoch hab ich es bisher nur geschafft, die Referenzen zu serialisieren, nicht die Bilder selbst.

Ich erkläre es am Besten nochmal am Code:
Hier ein Ausschnitt aus meiner Speicher-Methode.
Code:
fs = new FileOutputStream(path);
			ObjectOutputStream os = new ObjectOutputStream(fs);
			
			File f = new File("pics\\");
			   File[] files = f.listFiles();

			   if (files != null) {
			      for (int i = 0; i < files.length; i++) {
			    	  if(files[i].getPath().endsWith("jpg")) {
			    		  os.writeObject(files[i]);
			    	  }
			      }
			   }
			os.close();

Hier ein Ausschnitt aus meiner Laden-Methode:
Code:
fs = new FileInputStream(path);
			ObjectInputStream is = new ObjectInputStream(fs);
			
			for(int i = 0; i < picMan.getImages().size(); i++){
				File f=(File) is.readObject();
				System.out.println(f.getAbsolutePath());
			}
			
			is.close();
Es klappt soweit, dass ich bei dem System.out.println(f.getAbsolutePath());
die richtigen Dateinamen angezeigt bekomme. Jedoch werden die Bilder an sich
(also die Dateien auf dem Dateisystem) logischerweise nicht erstellt.

Weiß jemand von Euch, wie man sowas hinbekommt?
Danke für Eure Mühen!
 
F

fox112

Gast
Das habe ich mir auch schon überlegt, aber es ist einfach unpraktisch.
Mit der Serialisierung möchte ich ein komplettes Projekt speichern.
Dafür hätte ich gerne EINE Datei, in welcher sich die serialisierten
Objekte und die Bilder befinden.
Wenn sich in dem Projekt jetzt 20 Bilder befinden habe ich nachher
21 Dateien (alle Bilder + die normale serialisierungs-Datei) auf die
ich "aufpassen" muss, dass ich sie nicht verliere oder lösche.
 

SebiB90

Top Contributor
werden die bildern denn geändert?
also müssen die immer neu abgespeichert werden?
oder sind die fest im programm drin?

wenn letzteres: mach ne jar datei in der du auch die bilder rein packst.
 
F

fox112

Gast
nein, die Bilder werden nicht geändert.
Sie werden mit dem Programm erstellt und
sollen zu einem bestimmten Zeitpunkt abgespeichert
werden, damit das Programm später an der gleichen
Stelle fortgestzt werden kann. Wenn ich herausfinde
wie das mit der jar-Datei geht, könnte ich das vielleicht
so machen.
 

SebiB90

Top Contributor
ne
dann geht das mit jar datei wohl eher nicht.
weil die müsstest du dann neu erstellen. nur kannste schlecht deine jar durch ne neue ersetzen, wenn dein programm grad ausgeführt wird.
 

ms

Top Contributor
Müsstest du nicht die Bilder einzeln einlesen und dem ObjectOutputStream übergeben?

ms
 
G

Guest

Gast
Der ObjectOutputStream serialisiert Objekte. Da Du das File-Objekt serialisierst, werden auch nur genau diese darin enthaltene Information gespeichert. (Also der Pfad der Datei im Wesentlichen)

Wie hälst Du die JPGs im Speicher? Werden die auf der Platte direkt erzeugt? Ich bin mir nun nicht sicher, ob ich Dein Problem richtig verstanden habe, aber ich nehme es mal an.

Dann kannst Du
a) die Bilder erst mal in einen ByteArrayInputStream einlesen und das darin befindliche ByteArray dann in Deine Datei speichern (Rohdaten)
b) noch einen ZipOutputStream drum legen (Vorsicht, Zips haben Entries, also Einträge in einem Dictionary. Das muss auch angelegt werden!)

Code:
	ZipOutputStream outStream = new ZipOutputStream(myFileOutputStream);
	for (int i=0; i<FILEARRAY.size(); i++)
	{
		outStream.putNextEntry(new ZipEntry("jpg"+i)); // Vielleicht das File-Object hier verwenden
		outStream.write(JPGBYTES[i]); // Und das gelesene byte[] wegschreiben
		outStream.closeEntry();
	}

Das Zip-File würde ich ggf. für alle Einträge verwenden.

Einlesen geht dann mit dem ZipInputStream und z.B. einem "getNextEntry".
 
F

fox112

Gast
zum Speichern kopiere ich die Bilder jetzt einfach in einen Ordner. Dann muss ich zwar immer aufpassen, dass ich diesen Ordner nicht lösche, aber das nehme ich jetzt in Kauf.
Trotzdem vielen Dank für die schnelle und kompetente Hilfe hier, gerade die letzten zwei Beiträge hören sich interessant an. Ich werde mir diesen Thread auf jeden Fall merken, falls so ein Problem nochmal auftaucht.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Ascii Bild aus einem input file nur kommt nix im outputfile an?????? Allgemeine Java-Themen 5
berserkerdq2 Habe ein svg bild, kann ich das zu svg koordinaten umrechnen, damit ich den Umriss zeichnen kann? Wenn ja wie? Allgemeine Java-Themen 1
berserkerdq2 Wenn ich einfach eine GIF in den Scenebuilder als Bild reinpacke, wird das dann asl Gif angezeigt Allgemeine Java-Themen 1
OnDemand Prüfen ob Bild defekt ist Allgemeine Java-Themen 4
Y Bild in JPanel setzen Allgemeine Java-Themen 2
Kirby.exe Bild im Zentrum spiegeln Allgemeine Java-Themen 14
I Apache POI Bild in Word ersetzen Allgemeine Java-Themen 15
OnDemand Bild prüfen ob defekt Allgemeine Java-Themen 3
L Input/Output Kassenzettel lesen aus einem Bild Allgemeine Java-Themen 2
K Bild in einem anderen Bild suchen Allgemeine Java-Themen 12
R Compiler-Fehler Bild per E-Mail versenden Allgemeine Java-Themen 3
M Java- Bild gewissen Anzahl von Sekunden anzeigen?! Allgemeine Java-Themen 4
RalleYTN 2D-Grafik Bild mit bilinearer Interpolation skalieren Allgemeine Java-Themen 31
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
S Telefonbuch mit Bild Allgemeine Java-Themen 4
A 2D-Grafik Text in ein Bild schreiben Allgemeine Java-Themen 11
Tacofan GIF-Bild wird "zerstört" Allgemeine Java-Themen 3
B Bild aus Jar kann nach Export nicht mehr gefunden werden Allgemeine Java-Themen 13
T Neuen Kanal in Bild (TIFF) einfügen à la Photoshop Allgemeine Java-Themen 2
Z Zahlen aus Bild auslesen Allgemeine Java-Themen 1
X Bild -> lokale Variable -> DB -> lokale Variable Allgemeine Java-Themen 3
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
R HtmlUnit: Canvas als Bild speichern Allgemeine Java-Themen 0
E am häufigsten vorkommenden Farben aus einem Bild Allgemeine Java-Themen 5
S Bild in Raster Allgemeine Java-Themen 1
S Bild in Frame Allgemeine Java-Themen 0
F Punkte in einem Bild finden Allgemeine Java-Themen 10
A Bild aufteilen für getData Allgemeine Java-Themen 3
P Wie füge ich ein Bild in die GUI ein? Allgemeine Java-Themen 7
F ImageJ: Linien und Schnittpunkte in Bild Allgemeine Java-Themen 1
A mit getClassLoader Bild laden Allgemeine Java-Themen 8
E Bild abspeichern Allgemeine Java-Themen 5
D Face.com - Gesicht im Bild finden Allgemeine Java-Themen 3
N Input/Output Bild von WebSite laden? Allgemeine Java-Themen 3
A Input/Output Bild in Java einlesen und analysieren! Allgemeine Java-Themen 8
S programm um bild auszulesen Allgemeine Java-Themen 2
R Bild offenbar zu groß um geladen zu werden? Allgemeine Java-Themen 12
K Quadrat in einem Bild erkennen Allgemeine Java-Themen 33
B Bild verschieben Allgemeine Java-Themen 6
T Bild in jar Paket einbinden Allgemeine Java-Themen 9
D Bild Typ bestimmen Allgemeine Java-Themen 9
0 2D-Grafik Bild einfärben Allgemeine Java-Themen 8
A Bild zusammenbauen! Allgemeine Java-Themen 5
A Bild von Webcam aufzeichnen Allgemeine Java-Themen 14
V 2D-Grafik Bild transparent machen. Allgemeine Java-Themen 4
H Bild einscannen und speichern Allgemeine Java-Themen 29
E Bild mit Listener einfügen Allgemeine Java-Themen 3
B Bild in String einbauen? Allgemeine Java-Themen 3
C Bild auf HDD speichern Allgemeine Java-Themen 4
X Bild aus dem Netz von URL runterladen und in GUI einbinden. Allgemeine Java-Themen 3
F Bild (Point) mit scrollen lassen Allgemeine Java-Themen 5
R Texterkennung - Text aus einem/r Bild/Grafik auslesen Allgemeine Java-Themen 2
B Bild- und Texterkennung Allgemeine Java-Themen 4
S Tracing eines Bildes (a.ka. Bild vektorisieren)..? Allgemeine Java-Themen 2
destroflyer *.dds-Bild anzeigen Allgemeine Java-Themen 12
F Bild aus externer Quelle laden und Skalieren? Allgemeine Java-Themen 11
X Bild im Memory zwischen speichern Allgemeine Java-Themen 11
R JAI - RGB Bild in 3 Einzelbilder zerlegen Allgemeine Java-Themen 4
A Möglichkeiten, ein Bild schnell auszuwerten Allgemeine Java-Themen 56
D Java Thread, Bild wird nur am Ende gezeichnet Allgemeine Java-Themen 5
K Zeichnen auf ein Bild und Scrollen Allgemeine Java-Themen 7
data89 Barcodes in Bild erkennen Allgemeine Java-Themen 17
S Bild anhand von Koordinaten einteilen Allgemeine Java-Themen 7
K Transparente Bilder in Bild positionieren und speichern. Allgemeine Java-Themen 5
W Bild Spiegeln, aber Originalbild ausblenden Allgemeine Java-Themen 2
B Bild wird nicht angezeigt. Allgemeine Java-Themen 10
Developer_X Avatar/Bild ins Profil einbinden Allgemeine Java-Themen 10
C Bild in .txt speichern und wieder als Bild speichern Allgemeine Java-Themen 2
D Bild in text tabelle umwandeln Allgemeine Java-Themen 2
G bild in package Allgemeine Java-Themen 6
MQue bild zoomen Allgemeine Java-Themen 2
R Farbe im Bild ersetzen Allgemeine Java-Themen 11
R PDF einlesen und als Bild abspeichern Allgemeine Java-Themen 8
P Bild aus dem Internet speichern Allgemeine Java-Themen 4
K Schreiben von Bildern: Bild bleibt leer Allgemeine Java-Themen 7
ARadauer Bild verkleinern. Allgemeine Java-Themen 9
H Wie erstelle ich ein Bild ( GeoTIFF ) ? Allgemeine Java-Themen 2
Ark Bild immer als ARGB laden Allgemeine Java-Themen 2
N Hochgeladenes Bild verkleinern und speichern Allgemeine Java-Themen 2
N Graphics2D als Bild abspeichern Allgemeine Java-Themen 6
M bild verkleinern Allgemeine Java-Themen 9
MQue svg- Bild Allgemeine Java-Themen 34
S JPEG Bild übertragen mit RMI ? Allgemeine Java-Themen 4
V Wie kann ich ein Bild in einem Zip Archiv abspeichern? Allgemeine Java-Themen 3
ToNyXXL Als Mauszeiger eigenes Bild verwenden! Allgemeine Java-Themen 3
M bild erkennung Allgemeine Java-Themen 2
S Bild durchs Label laufen Allgemeine Java-Themen 14
T Bild verliert Inhalt. Allgemeine Java-Themen 6
T Icon -> Bild einladen Allgemeine Java-Themen 18
G Bild neu zeichnen Allgemeine Java-Themen 13
S Bild Größe verändern Allgemeine Java-Themen 2
R Bild flackert nach Java-Install - nur bei Laufschriften. Allgemeine Java-Themen 2
H Bild base64encode als String Allgemeine Java-Themen 9
S Bild aus Zwischenablage in Applet einfügen Allgemeine Java-Themen 2
T Ich bin unfähig ein Bild relativ zu addressieren ... Allgemeine Java-Themen 12
D JPEGEncoder -> Schwarz Weiß Bild Allgemeine Java-Themen 2
M Eingelesene Bild wird automatisch skaliert Allgemeine Java-Themen 4
R Bild wird trotz allem einfach nicht angezeigt. - AHHHHH!!!!! Allgemeine Java-Themen 30
R Bild downloaden und darstellen lassen Allgemeine Java-Themen 5
R Bild downloaden und dann Applet ausfüllen Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben