wie kann ich ein BufferedImage komprimieren?

Status
Nicht offen für weitere Antworten.

Denis103

Mitglied
Hallo,

ich möchte ein BufferedImage in der Qulität mindern. Ausgangspunkt ist ein BufferedImage und Ziel ist ein neues komprimiertes BufferedImage.

Hab das Beispiel gefunden welches eine JPG erzeugt und hab nun versucht dieses umzuschreiben.
Hab schon viel Probiert aber es will nie. Er meckert immer beim "write", dass ich kein Output setze.

Code:
BufferedImage bi = null;
BufferedImage bi_komp = null;

bi = ImageIO.read(new File("C:\test.bmp"));

Iterator iter = ImageIO.getImageWritersByFormatName( "jpg" );
if ( iter.hasNext() )
{
     ImageWriter writer = (ImageWriter) iter.next();
     ImageOutputStream ios;
     try {
              ios = ImageIO.createImageOutputStream(bi);
              writer.setOutput(ios);
              ImageWriteParam iwparam = writer.getDefaultWriteParam();
              iwparam.setCompressionMode( ImageWriteParam.MODE_EXPLICIT ) ;
              iwparam.setCompressionQuality( 0.5F );
              writer.write( null, new IIOImage(bi_komp, null, null), iwparam );
              ios.flush();
              writer.dispose();
              ios.close();
      } catch (IOException ex) {
                ex.printStackTrace();
         }
}

Also ich will keine jpg sondern nur ein neues BufferdImage (bi_komp) da ich mit dem noch weiter arbeiten muss.

Kann mir bitte jemand helfen?

MfG
Denis
 

Denis103

Mitglied
Ich will es ja nicht skallieren sondern die Qualität des Bildes ändern. Bei JPEG werden die Artefakte größer bei zunehmenden Kompressionsgrad. Also das Bild wird Detailarmer.
 

me1357

Mitglied
Wenn ich mich nicht irre, dann handelt ist sich bei BufferedImage um eine Rastergrafik, da gibts keine Komprimierung, jeder Pixel hat eine feste Anzahl von Bytes.
Die Datenmenge hängt also nicht von der Qualität, sondern nur von der Pixelzahl ab.
 

Denis103

Mitglied
Das ist glaube richtig. Ich hab das Beispiel von hier:

www.tutorials.de/forum/swing-awt-swt/190610-jpanel-als-jpg-speichern-qualitaet-anpassen.html

Im 2. Post von "Thomas Darimont" könnt ihr es nochmal sehen was meine Grundlage war.

Er nimmt als Quelle ein BufferedImage. Dann erstellt er daraus ein IIOImage. Über ein ImageWriter-Objekt führt er dann die Kompression durch und speichert das dann in einer Datei und in dem IIOImage-Objekt.

Ansich muss ich dann doch nur noch das IIOImage-Objekt in ein BufferedImage umwandeln und müsste fertig sein - oder?

Nur wie geht das?
 

Ark

Top Contributor
Ein BufferedImage ist dazu da, benutzt, verändert, angezeigt zu werden usw., kurzum, jedes Pixelchen soll sofort abrufbar zur Verfügung stehen, deswegen heißt es ja auch BufferedImage. Ein komprimiertes Bild dafür im Arbeitsspeicher zu halten, ist sinnfrei. Bilder werden nur deshalb auf Platte komprimiert gespeichert, weil sie da ja nur gelagert, nicht aber verändert, angezeigt usw. werden.

Alle Klarheiten beseitigt?! ;)

MfG
Ark
 

Denis103

Mitglied
Das ist mir schon klar das die nur komprimeirt werden um Platz auf der Platte zu sparen, nur hilft mir das überhaupt nicht weiter!!! :wink:

Ich zieh mir das doch auch nie aus den Haaren. Das was ich machen will gibts in jedem Bildverarbeitungsprogramm welches JPEG verarbeiten kann.

Wie kann ich denn ein IIOImage in ein BufferedImage zurückwandeln?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Mr.Strobel BufferedImage Exportieren Eclipse Java Basics - Anfänger-Themen 14
A BufferedImage zeigt nur schwarz Java Basics - Anfänger-Themen 3
A BufferedImage Pixel Java Basics - Anfänger-Themen 7
pkm Best Practice BufferedImage in JPane darstellen - aber wie? Java Basics - Anfänger-Themen 22
T BufferedImage in Jar Java Basics - Anfänger-Themen 8
C Problem beim laden eines BufferedImage Java Basics - Anfänger-Themen 2
S BufferedImage heller/dunkler machen mit RescaleOp Java Basics - Anfänger-Themen 2
D Jpg in BufferedImage Reader oder Array ablegen? Java Basics - Anfänger-Themen 5
F BufferedImage Speicher Nutzung Java Basics - Anfänger-Themen 2
S BufferedImage Java Basics - Anfänger-Themen 2
Ernesto95 BufferedImage Teilbereich wieder transparent setzen Java Basics - Anfänger-Themen 16
M BufferedImage performant einlesen Java Basics - Anfänger-Themen 5
A BufferedImage in Android einbinden - Bild spiegeln -wie? Java Basics - Anfänger-Themen 4
O BufferedImage drehen, falsch positioniert Java Basics - Anfänger-Themen 5
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
H BufferedImage DPI verändern Java Basics - Anfänger-Themen 5
S jpeg bzw bufferedimage als PDF Speichern Java Basics - Anfänger-Themen 13
W von Graphics in BufferedImage Java Basics - Anfänger-Themen 10
H BufferedImage Java Basics - Anfänger-Themen 5
F BufferedImage aus short[][][] Java Basics - Anfänger-Themen 3
Luk10 NPE bei BufferedImage[] Java Basics - Anfänger-Themen 4
S BufferedImage mit farbwerten füllen Java Basics - Anfänger-Themen 11
I Probleme beim Laden eins BufferedImage Java Basics - Anfänger-Themen 8
P BufferedImage als raw speichern Java Basics - Anfänger-Themen 3
C BufferedImage + Popup/Overlay Java Basics - Anfänger-Themen 2
E BufferedImage drucken Java Basics - Anfänger-Themen 3
R BufferedImage in JLabel Java Basics - Anfänger-Themen 2
G Serialisiertes BufferedImage wieder einlesen Java Basics - Anfänger-Themen 13
G Jpanel -> BufferedImage konvertieren Java Basics - Anfänger-Themen 7
G BufferedImage in Applet laden Java Basics - Anfänger-Themen 8
Q BufferedImage aus Bild in jar Java Basics - Anfänger-Themen 2
? BufferedImage löschen Java Basics - Anfänger-Themen 4
F Farben eines ganzen BufferedImage invertieren Java Basics - Anfänger-Themen 2
K Graphics2D und BufferedImage Java Basics - Anfänger-Themen 3
reibi TIFF nach BufferedImage wandeln Java Basics - Anfänger-Themen 72
reibi Farbiges BufferedImage umwandeln zu 2farbig SchwarzWeiss Java Basics - Anfänger-Themen 7
E nullpointer bei BufferedImage Java Basics - Anfänger-Themen 2
M BufferedImage erzeugt OutOfMemoryError Java Basics - Anfänger-Themen 10
B Vorteil von Graphic2D und BufferedImage? Java Basics - Anfänger-Themen 6
U BufferedImage anzeigen, imageIcon oder paintComponent(); Java Basics - Anfänger-Themen 6
X Image nach BufferedImage wandeln ? Java Basics - Anfänger-Themen 9
T BufferedImage kopieren Java Basics - Anfänger-Themen 6
G Image -> BufferedImage Java Basics - Anfänger-Themen 4
M Image/BufferedImage Java Basics - Anfänger-Themen 4
T Multiple BufferedImage Java Basics - Anfänger-Themen 3
Z DNA-komprimieren Java Basics - Anfänger-Themen 28
L Methoden String text komprimieren und dekomprimieren Java Basics - Anfänger-Themen 14
E String komprimieren - Kürzen ohne Informationsverlust? Java Basics - Anfänger-Themen 13
P if Anweisungen komprimieren Java Basics - Anfänger-Themen 6
-horn- BigIntegers zum Speichern umwandeln oder "komprimieren"? Java Basics - Anfänger-Themen 13
L ZeichenRuns komprimieren Java Basics - Anfänger-Themen 3
B ImageIcon komprimieren (zB Jpeg) Java Basics - Anfänger-Themen 14
F String Komprimieren Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben