Faire capture ecran + redimensionnement image

Soyez le premier à donner votre avis sur cette source.

Vue 21 515 fois - Téléchargée 1 379 fois

Description

Voici une petite source afin de pallier au nombre de questions relative à l'encodage d'image et autre capture d'écran, ainsi que le redimensionnement d'une image ... code source de moins de 70 lignes et encore avec tous les commentaires et les headers de fichier source ...

Source / Exemple :


public class ScreenShotFactory {

    public final static String IMAGE_TYPE_JPEG = "jpeg";

    public final static String IMAGE_TYPE_GIF = "gif";

    public final static String IMAGE_TYPE_PNG = "png";

    public static void screenShot(Rectangle screenArea,
            Dimension screenshotFinalDimension, String pictureName,
            String compressionType) {
        BufferedImage buf = null; // Notre capture d'écran originale
        BufferedImage bufFinal = null; // Notre capture d'écran redimensionnée

        try {
            // Création de notre capture d'écran
            buf = new Robot().createScreenCapture(screenArea);
        } catch (AWTException e) {
            e.printStackTrace();
        }
        // Création de la capture finale
        bufFinal = new BufferedImage(screenshotFinalDimension.width,
                screenshotFinalDimension.height, BufferedImage.TYPE_INT_RGB);
        // Redimensionnement de la capture originale
        Graphics2D g = (Graphics2D) bufFinal.getGraphics();
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BILINEAR);
        g.drawImage(buf, 0, 0, screenshotFinalDimension.width,
                screenshotFinalDimension.height, null);
        g.dispose();

        // Ecriture de notre capture d'écran redimensionnée
        try {
            ImageIO.write(bufFinal, compressionType, new File(pictureName));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        ScreenShotFactory.screenShot(new Rectangle(0, 0, 100, 100),
                new Dimension(50, 50), "test.png",
                ScreenShotFactory.IMAGE_TYPE_PNG);
    }
}

Conclusion :


Human knowledge belongs to the world !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Chatbour
Messages postés
71
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
12 juillet 2009
2 -
Merci : ça répond bien à ce que je cherche !
Karboggy
Messages postés
6
Date d'inscription
vendredi 26 mars 2004
Statut
Membre
Dernière intervention
3 août 2006
-
Merci !!
^-^
Fwdavy
Messages postés
57
Date d'inscription
lundi 27 septembre 2004
Statut
Membre
Dernière intervention
8 novembre 2007
-
Le code marche bien sur PC.....mais pas moyen de le faire tourner sur pocketPC, j'utilise le run d'IBM (celui où y'a l'exemple du jeux de golf). Quelqu'un pourrait m'aider pour le faire tourner su PocketPC.

++
cs_neodante
Messages postés
2837
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10 -
Cela dépend des Writer dispo sur la machine ...
Utiliser le méthode getWriterFormatNames pour connaître ceux disponible sur votre machine :
http://java.sun.com/j2se/1.4.2/docs/api/javax/imageio/ImageIO.html#getWriterFormatNames()

++
grand_jeanluc
Messages postés
16
Date d'inscription
lundi 29 septembre 2003
Statut
Membre
Dernière intervention
21 novembre 2005
-
Pour info, l'image en gif ne marche pas. Vois-tu une solution à ce problème de type ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.