Comment eines JPEG Headers lesen, schreiben

midnight3009

Grünschnabel
Hi,

Nachdem ich vergeblich nach einer Antwort gegoogelt habe, hoffe ich, dass ihr mir
mit folgendem Problem weiterhelfen könnt:

Wie kann ich in Java den Comment eines JPEGs lesen/schreiben?
... also das was ich per Commandline so erledigen würde:

Code:
jhead -c "der kommentar" Bilder/landscapes/lake.jpg
 
Hi, Danke erstmal für die Hilfe.


ich hab das hier gefunden (bei google ;)):

Nach welchen Keywords hast Du denn bei g:google: gesucht?

Damit kann ich zwar Kommentare lesen, aber nicht schreiben.

Code:
Metadata metadata = JpegMetadataReader.readMetadata(inputStream);
schliesst den InputStream. ich kann zwar Änderungen in metadata machen, aber wie bekomme ich die wieder in den Stream, denn ich ja gerne auch auf Platte schreiben würde.

Am liebsten würde ich den Kommentar on download manipulieren, ohne das
komplette JPEG im Speicher decodieren zu müssen.

Code:
URL url = new URL("http://www.traveltotal.de/images/reisepartner_traveltotal.jpg");

URLConnection conn = url.openConnection();
InputStream inputStream = new  BufferedInputStream( conn.getInputStream());

//File jpegFile = new File("/home/micha/Bilder/landscapes/lake.jpg"); 
//InputStream inputStream2 = new BufferedInputStream(new FileInputStream(jpegFile));

Metadata metadata = JpegMetadataReader.readMetadata(inputStream);

// so jetzt ist der inputStraem leider schon zu
			
Directory jpegCommentDirectory = metadata.getDirectory(JpegCommentDirectory.class);

String comment = jpegCommentDirectory.getString(JpegCommentDirectory.TAG_JPEG_COMMENT);
System.out.println("Kommentar:" + comment);

jpegCommentDirectory.setString(JpegCommentDirectory.TAG_JPEG_COMMENT, "hallo welt");
	

OutputStream out = new BufferedOutputStream(new FileOutputStream("/home/micha/localfile.jpg"));
byte[] buffer = new byte[1024];
int numRead;
long numWritten = 0;
while ((numRead = inputStream.read(buffer)) != -1) {
	out.write(buffer, 0, numRead);
	numWritten += numRead;
	}
out.close();
 
Zuletzt bearbeitet:
Zurück