Le redimensionnement des images et l'affichage dans un Composite ou un JLabel sans perte de qualité

Je suis l'élaboration d'un programme java à l'employé de capture d'images au moment de l'enregistrement à l'aide d'une webcam. Je peux obtenir l'image sans aucun problème, et l'enregistrer dans mon lecteur C:, mais lors de la lecture de l'image seulement une partie de l'image est affichée sur l'étiquette. Est-il un moyen de re dimensionnement de l'image avant de l'enregistrer? ou avant de les afficher? comme en réduire la taille sans perte de qualité....

Thankz beaucoup
Cheerz!
:)!

bon les gars... va ici:- j'ai commenté le code dans la façon dont je les ai utilisé.

//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");
    }
    }

peut-être que je peux l'échelle de l'image, tout en économisant.. afin que je puisse récupérer l'image à l'échelle..

  • "réduire la taille sans perte de qualité du" ce n'est pas possible. Différentes techniques de lissage des courbes, en partie, cacher les objets de l'image resize, mais il baisser la résolution dans Lxh et l'image de la "qualité" doit être moins.
  • ouais c'est vrai.... une baisse de la qualité est ok, mais l'ensemble de l'image n'est pas affichée...jusqu'à présent qu'une partie de l'rétréci image était tout ce que je pouvais obtenir..
  • Pour mieux aider plus tôt, après une SSCCE. Peut-être chaud-lien vers l'un des ces images.
  • Pour mieux aider plus tôt (en plus de fournir un SSCCE, comme déjà mentionné par @AndrewThompson) essayer de faire la lecture de votre question, agréable par a) l'apprentissage et de coller aux conventions de nommage java b) complètement (et constamment!) mise en forme du code (il y a un bouton d'aide qui arrive avec un how-to lorsque vous cliquez dessus 🙂
  • si vous êtes vraiment intéressé par la qualité, il n'y a pas moyen de contourner la lecture sur les bases de graphics2D options, f.j'. un début de blog today.java.net/pub/a/today/2007/04/03/... ou filtyRichClients