Ich möchte nur etwas Code bearbeiten lassen, so dass die Ausgabe-JPG-Qualität nicht die Standardeinstellung niedriger Qualität ist, die
%Vor%..... verwendet zur Zeit.
Ich habe mir andere Java-Beispiele für Einstellungsqualität angeschaut, die mit Java nicht vertraut sind. Ich habe Probleme zu verstehen, wie ich einige Beispiele einbinden und nacharbeiten kann, die ich bei der Verwendung von Java zur Einstellung der Bildqualität gesehen habe .
%Vor%Hier ist der Code, den ich versuche, Arbeit zu bekommen ........
%Vor%Schließlich habe ich es mit diesem Code gemacht ...
%Vor%Vielleicht möchten Sie genauer ausführen, was Ihr tatsächliches Problem mit dem Code ist.
Im Allgemeinen ist das zweite Sniplet, das Sie verwenden, (mehr oder weniger) der richtige Ansatz:
1) ImageIO.write (...) verwendet Standardwerte für so ziemlich alles, es erfordert keine zusätzliche Konfiguration.
2) Wenn Sie Parameter optimieren möchten, z. Für die Komprimierungsrate sollten Sie stattdessen einen ImageWriter verwenden. Sie können einen geeigneten Schreiber für jedes Format (in Ihrem Fall jpg) mit ImageWriter writer = ImageIO.getImageWritersByFormatName("jpg");
3) Sie legen dann die Konfigurationsparameter fest, die der Writer für eine Instanz von ImageWriteParam verwenden soll. Sie können eine JPEGImageWriteParam
direkt instanziieren, aber wenn Sie nur die Komprimierungsrate ändern möchten, ist es einfacher, eine Standardinstanz mit ImageWriteParam param = writer.getDefaultWriteParam();
4) Legen Sie die Komprimierungsqualität wie im obigen Code-Snipplet angegeben fest, und legen Sie den Komprimierungstyp entsprechend explizit fest.
5) Der Aufruf von writer.write(null, new IIOImage(image, null, null), iwparam);
weist Ihre Schreiberinstanz grundsätzlich an, ein Bild ohne Metadaten oder eingebettete Thumbnails zu erstellen, das nichts als Ihre BufferedImage enthält und das Konfigurationsobjekt verwendet, das Sie in 3) erstellt haben.
Ich bin auf ein ähnliches Problem gestoßen und die Antwort war mir nicht sehr klar, da ich zu der Zeit kein Wissen über ImageIO hatte, also zu den Leuten wie mir, die auf diesen Posten stießen, machte ich ein Beispiel.
%Vor%Wenn Sie einen einfacheren Weg kennen oder Sie etwas falsch in meinen Kommentaren oder Code gefunden haben, lassen Sie mich in den Kommentaren wissen, damit ich ändern kann.
Tags und Links java