Wie kann ich komprimieren Sie jpeg-Bilder in Java-ohne-Metadaten in das Bild?
Ich will, komprimieren Sie jpeg-Dateien mit Hilfe von Java. Ich mache es so:
- Lesen das Bild als
BufferedImage
- Schreibt das image auf eine andere Datei mit Kompressionsrate.
OK, das scheint einfach, aber ich finde das ICC-Farbprofil und die EXIF-Informationen verschwunden sind in der neuen Datei und der DPI-Wert des Bildes ist, sank von 240 auf 72. Es sieht anders aus als das Ursprungs-image. Ich benutze ein tool wie Vorschau in OS X. Es kann perfekt die Qualität des Bildes, ohne die anderen Informationen.
Kann ich das Java? Zumindest die Farbe ICC-Profil und lassen Sie das Bild Farbe gleich Aussehen, wie das Ursprungs-Foto?
InformationsquelleAutor guitarpoet | 2009-06-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies scheint zu funktionieren, wie das Lesen der Bild-und Ausgang, aber das hat keine Unterstützung für die änderung der Qualität des Bildes zu komprimieren, denke ich.
InformationsquelleAutor Rezaul Karim
Endlich einen Weg finden, dies zu tun.
Verwenden javax.imageio.IIOImage. Es kann gelesen werden, indem JpegImageReader.
Aber es war ein Fehler, ein Fehler für die letzten 6 Jahre. 🙁
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4924909
Glücklicherweise, wenn Sie tun, einige hack(Fake die JFIF-Abschnitt), und es funktioniert. 😀
So, dieses problem kann gelöst werden, wie dieses:
Gut, es scheint ok zu sein(Alle Informationen speichern), außer für eine Sache, das Bild ist heller(oder eher sagen, pale) als das ursprüngliche Bild(Es wird nicht passieren, wenn ich mit der Vorschau von OS X, um komprimierte Foto -, so muss das problem in meinem code oder java, oder meine falsche Verwendung 🙁 ).
So, mein problem für die Komprimierung von jpeg-Dateien in java ist nicht gelöst, noch nicht.
Irgendwelche Vorschläge?
InformationsquelleAutor guitarpoet