Bildgrößenänderung und Anzeige in einem JPanel oder einem JLabel ohne Qualitätsverlust

Ich entwickle ein Java-Programm, um Mitarbeiterbilder zum Zeitpunkt der Registrierung mit einer Webcam zu erfassen. Ich kann das Bild problemlos abrufen und auf meinem Laufwerk C: speichern, aber beim Abrufen des Bildes wird nur ein Teil des Bildes auf dem Etikett angezeigt. Gibt es eine Möglichkeit, die JPEG-Größe vor dem Speichern zu ändern? oder bevor es angezeigt wird? wie es ohne Qualitätsverlust schrumpfen ....

Vielen Dank Cheerz! :)!

Okay Leute ... hier ist es: - Ich habe den Code so kommentiert, wie ich sie verwendet habe.

//This method will capture the image from the interface and save it under the unique employee ID
public String captureImage(int picId){

    FrameGrabbingControl ControlFG = (FrameGrabbingControl)

    broadcast.getControl("javax.media.control.FrameGrabbingControl");

    Buffer buffer = ControlFG.grabFrame();

    BufferToImage image = new BufferToImage((VideoFormat)buffer.getFormat());

    img = image.createImage(buffer);

    path="c:\\employee"+picId+".jpg";

    saveJPG(img,path);//method will save the image

    return path;

}

 public void saveJPG(Image img, String s){***//method will save the image***

    System.out.println(s);

    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null),

    BufferedImage.TYPE_INT_RGB);

    Graphics2D g2 = bi.createGraphics();

    g2.drawImage(img,null,null);

    FileOutputStream out = null;
    try{

    out = new FileOutputStream(s);

    }
    catch (java.io.FileNotFoundException io){

    System.out.println("File Not Found");
    }

    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);

    param.setQuality(0.5f,false);

    encoder.setJPEGEncodeParam(param);

    try
    {
    encoder.encode(bi);
    out.close();
    }

    catch (java.io.IOException io)
    {
    System.out.println("IOException");
    }
    }

Vielleicht kann ich das Bild beim Speichern skalieren, damit ich das skalierte Bild abrufen kann.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage