Qualitätsverlust beim Abspeichern von JPGs

jorgeHX

Erfahrenes Mitglied
Hallo zusammen,
ich verzweifle noch am Abspeichern von JPG-Files.

Meine Standardgrafik ist 245KB groß mit den Maßen 750 X 550.

Zu Beginn hole ich meine Grafik in eine Imageobjekt und gehe dann wie folgt vor:

Code:
    Image image = Toolkit.getDefaultToolkit().getImage(
            "Icons/uebung/Test.jpg");

    BufferedImage scrImage = new BufferedImage(750, 550,
                                 BufferedImage.TYPE_INT_RGB);


    scrGraphic = scrImage.createGraphics();
    scrGraphic.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                                RenderingHints.VALUE_INTERPOLATION_BILINEAR);

    int imageWidth = image.getWidth(null);
    int imageHeight = image.getHeight(null);


    scrGraphic.drawImage(image, 0, 0, imageWidth, imageHeight, null);

    String picPath = "Icons\\uebung\\" + neuerName +
            ".jpg";

    ImageIO.write(scrImage, "jpeg", new File(picPath));

Das neue Image ist nun aber nur 116KB groß, obwohl die Maße von 750 X 550 beibehalten wurden....

Wie kann ich denn diesen Verlust verhindern, da der Ausdruck schon unterschiedlich scharf ist

Tausendfachen Dank schon jetzt,
JP
 
Hi,
also das hatte ich mir vorher schon angeschaut, aber nach einfügen von:

Image scaledImage = img.getScaledInstance(wNew, hNew,
Image.SCALE_SMOOTH);

hatte sich bei mir nichts an der Qualität geändert.....
Woran könnte es noch liegen?
 
Moinsen,
also ich habe es wie folgt nunmal getestet:

Code:
Image img = null;
    try{
      img = new ImageIcon(ImageIO.read(new File(
          "Icons/Testordner/Startgrafik.jpg")))
          .getImage();

      Image scaledImage = img.getScaledInstance(750, 550,
                                                Image.SCALE_SMOOTH);

      BufferedImage outImg = new BufferedImage(750, 550,
                                               BufferedImage.TYPE_INT_RGB);
      Graphics g = outImg.getGraphics();
      g.drawImage(scaledImage, 0, 0, null);
      g.dispose();

      ImageIO.write(outImg, "jpeg", new File("Icons/Testordner/Test.jpg"));
    }
    catch (Exception e){

    }

Die Ausgangsgrafik ist wie gesagt 245KB groß, aber nach dem Abspeichern schrumpft sie erneut auf 116KB. Woran kann das denn bloß liegen? Verzweifle schon fast hier.
JP
 
Zurück