begin process at 2010 03 17 00:14:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > LOUPE EN JAVA

LOUPE EN JAVA


 Information sur la source

Note :
8,67 / 10 - par 3 personnes
8,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :loupe, robot, bufferedimage, mouseinfo Niveau :Débutant Date de création :14/08/2006 Date de mise à jour :26/08/2006 22:35:29 Vu / téléchargé :6 232 / 677

Auteur : Ombitious_Developper

Ecrire un message privé
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Utilitaire Loupe.

Source

  • /*
  • * Loupe.java
  • *
  • * Créé le 14-08-2006, 12:14
  • *
  • */
  • import javax.swing.* ;
  • import java.awt.* ;
  • import java.awt.image.* ;
  • /**
  • * Auteur : A.B.
  • */
  • public class Loupe extends JFrame implements Runnable {
  • /**
  • * Données membres
  • */
  • private BufferedImage image = null;
  • /** constructeur de la classe Loupe */
  • public Loupe() {
  • super ("Loupe");
  • setDefaultCloseOperation (EXIT_ON_CLOSE);
  • setResizable (false);
  • setBounds (50, 50, 250, 250);
  • setVisible (true);
  • }
  • /**
  • * faire un imprime écran une zone rectangulaire de centre la pointe du
  • * curseur
  • */
  • public void getScreenShot (Point point) throws AWTException {
  • getScreenShot (point.x, point.y);
  • return;
  • }
  • /**
  • * faire un imprime écran d'une zone rectangulaire de centre la pointe du
  • * curseur avec un facteur d'aggrandissment x2
  • */
  • public void getScreenShot (int x, int y) throws AWTException {
  • int sourceWidth = getWidth () / 2;
  • int sourceHeight = getHeight () / 2;
  • Robot robot;
  • robot = new Robot ();
  • Rectangle rectangle;
  • rectangle = new Rectangle (x - (sourceWidth >> 1),
  • y - (sourceHeight >> 1),
  • sourceWidth,
  • sourceHeight);
  • image = robot.createScreenCapture (rectangle);
  • return;
  • }
  • /**
  • * @param point : (x, y)
  • * renvoie : true si ce point est à l'intérieur de la fenêtre
  • * false sinon
  • */
  • boolean isPointInRect (Point point) {
  • int frameX = getX ();
  • int frameY = getY ();
  • int frameWidth = getWidth ();
  • int frameHeight = getHeight ();
  • return ((point.x >= frameX) & (point.x <= frameX + frameWidth)) &
  • (point.y >= frameY) & (point.y <= frameY + frameHeight);
  • }
  • /**
  • *
  • */
  • public void run () {
  • while (true) {
  • try {
  • // récupérer les coordonnées de la pointe de la souris
  • Point point;
  • point = MouseInfo.getPointerInfo ().getLocation ();
  • if (isPointInRect (point))
  • continue;
  • Graphics g;
  • g = getGraphics ();
  • // faire un imprime écran
  • try {
  • getScreenShot (point);
  • }
  • catch (AWTException exception) {
  • }
  • // afficher l'imprime écran sur le fenêtre
  • if (image != null)
  • g.drawImage (image, 0, 0, getWidth (), getHeight (), this);
  • // libérer le contexte d'affichage
  • g.dispose ();
  • // faire un rafraîchissement tout les 50 millisecondes
  • Thread.sleep (50);
  • }
  • catch (InterruptedException exception) {
  • }
  • }
  • }
  • /**
  • * @param args : ligne de commande
  • */
  • public static void main(String[] args) {
  • // code de l'application
  • Thread Application = new Thread ( new Loupe ());
  • Application.start ();
  • }
  • }
/*
 * Loupe.java
 *
 * Créé le 14-08-2006, 12:14
 *
 */


import javax.swing.*    ;
import java.awt.*       ;
import java.awt.image.* ;

/**
 * Auteur : A.B.
 */

public class Loupe extends JFrame implements Runnable {
    
    /**
     * Données membres
     */
    private BufferedImage image = null;
    
    /** constructeur de la classe Loupe */
    public Loupe() {
        super ("Loupe");
        setDefaultCloseOperation (EXIT_ON_CLOSE);
        setResizable (false);
        setBounds (50, 50, 250, 250);
        
        setVisible (true);
    }
    
    /**
     * faire un imprime écran une zone rectangulaire de centre la pointe du 
     * curseur
     */
    public void getScreenShot (Point point) throws AWTException {
        getScreenShot (point.x, point.y);
        return;
    }
    
    /**
     * faire un imprime écran d'une zone rectangulaire de centre la pointe du 
     * curseur avec un facteur d'aggrandissment  x2
     */
    public void getScreenShot (int x, int y) throws AWTException {
        int sourceWidth  = getWidth ()  / 2;
        int sourceHeight = getHeight () / 2;
        
        Robot robot;
        robot = new Robot ();
        
        Rectangle rectangle;
        rectangle = new Rectangle (x - (sourceWidth >> 1),
                                   y - (sourceHeight >> 1), 
                                   sourceWidth, 
                                   sourceHeight);
        
        image = robot.createScreenCapture (rectangle);
     
        return;
    }

    /**
     * @param point : (x, y)
     * renvoie : true  si ce point est à l'intérieur de la fenêtre
     *           false sinon
     */
    boolean isPointInRect (Point point) {
        int frameX      = getX ();
        int frameY      = getY ();
        int frameWidth  = getWidth ();
        int frameHeight = getHeight ();
        
        return ((point.x >= frameX) & (point.x <= frameX + frameWidth)) &
                (point.y >= frameY) & (point.y <= frameY + frameHeight);
    }

    /**
     * 
     */ 
    public void run () {
        while (true) {
            try {
                // récupérer les coordonnées de la pointe de la souris
                Point point;
                point = MouseInfo.getPointerInfo ().getLocation ();
                
                if (isPointInRect (point)) 
                    continue;
                
                Graphics g; 
                g = getGraphics ();
                
                // faire un imprime écran
                try {
                    getScreenShot (point);
                }
                catch (AWTException exception) {
                }
                // afficher l'imprime écran sur le fenêtre
                if (image != null)
                    g.drawImage (image, 0, 0, getWidth (), getHeight (), this);
                // libérer le contexte d'affichage
                g.dispose ();
                // faire un rafraîchissement tout les 50 millisecondes
                Thread.sleep (50);
            }
            catch (InterruptedException exception) {
            }
        }
    }

    /**
     * @param args : ligne de commande
     */
    public static void main(String[] args) {
        // code de l'application
        Thread Application = new Thread ( new Loupe ());
        Application.start ();
    }
}

 Conclusion

Merci à ceux qui m'ont aidé à réaliser ce petit programme.
Remarques, Critiques, Remerciement sont les bienvenues.

Et Merci ...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

26 août 2006 22:35:29 :
Ajout d'un Zip

 Sources du même auteur

Source avec Zip Source avec une capture DRAG-DROP UNE FORME GÉOMETRIQUE
JOUR ASSOCIÉ À UNE DATE DONNÉE
Source avec Zip Source avec une capture EJECTER / FERMER CD-ROM / DVD-ROM (JNI + WINDOWS)

 Sources de la même categorie

Source avec Zip Source avec une capture SITE DES ANNONCES EN J2EE par TUIRIK
Source avec Zip Source avec une capture BANANA SPLIT par roiDesBranleurs
Source avec une capture ENVOIE DES SMS VIA LES COMMANDES AT par ingenioura
Source avec Zip ANALYSEUR DE PROXY IRC ET HTTP AVEC UNE INTERFACE GRAPHIQUE par sisisousou
Source avec Zip Source avec une capture "PROGRAMMEUR", EST UN PROGRAMME QUI PERMET DE TAPER QUELQUE ... par edouard333

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LETMESEE : CAPTURE D'ÉCRAN À INTERVALLE RÉGULIER : UTILISATI... par pyo656
Source avec Zip Source avec une capture AQUARIUM 2D AVEC DOUBLE-BUFFERING ET EN UTILISANT UNIQUEMENT... par Cornellus1985
Source avec Zip APPLET IRC + ANNA BOTEN : UN BOT IRC QUI PERMET DE JOUER A D... par coucou747
Source avec Zip WEB SPIDER - WEB CRAWLER par AlexN
Source avec Zip JIRC IRC ROBOT CLIENT EXEMPLE par Hassen Ben Tanfous

Commentaires et avis

Commentaire de Twinuts le 14/08/2006 13:43:50 administrateur CS

Salut,

code très interessant, bien vommenté et d'une utilisation fluide simpas.

petites remarques :
- petit bug d'affichage si la souris se trouve sur un des coins de l'ecran.
- c'est juste une idée mais tu pourrais re travailler le rendu de l'image avant de la dessinner exemple (ligne 103):
if (image != null){
  Graphics2D g2 = image.createGraphics();
  g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
  g2.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,
RenderingHints.VALUE_COLOR_RENDER_QUALITY);
  g2.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
  g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
  g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);

  g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
  g2.dispose();
  g2 = null;
}

Commentaire de Ombitious_Developper le 14/08/2006 13:46:29

Merci pour votre remarque : je vais la prendre en considération.

Commentaire de tucobouch le 15/08/2006 15:56:54

Bonjour,
juste une petite remarque : tu pourrai poster la source aussi avec, ça éviterai de faire un copier/coller .... c'est qu'on est feignasse ;)

Commentaire de jmecodol le 26/08/2006 16:11:11

très bonne remarque,
quand je copie-colle,
j'ai le numéro des lignes au début de chaque ligne,

donc une autre raison pour publier la source ..

je dis ca mais c'est que j'imagine le nombre de
personne qui font comme je fais souvent :
- le jour ou j'en aurai besoin vraiment,
ce jour la je testerai,
mais la j'ai pas le temp de faire un script qui
retire les numéro,
ni de taper 123 fois 'suppr' 'suppr' 'suppr' 'suppr' 'fleche-bas' .

merci pour m'avoir montré que
c'était simple de faire une loupe .

Commentaire de Ombitious_Developper le 26/08/2006 22:58:18

Salut :

Voilà la source est maintenant en zip.

Commentaire de paradoxxl le 03/09/2006 16:58:09

Bonjour
joli petit programme, mais je trouve qu'au contraire, cela manque  beaucoup de commentaire, meme si cela n'est difficile de comprendre, c'est toujours plus agreable..

Merci ^^

Commentaire de paradoxxl le 03/09/2006 17:01:25

Je retire ce que j'ai dit , je n'avais regardé que le code dans le code, pas celui de page web (pourquoi avoir enlevé le commentaire dans le zip ?)

Commentaire de paradoxxl le 03/09/2006 17:10:04

Pour tucobouch, pour eviter de copier les numero , il s'agit d'utiliser IE pour copier/coller, meme si ce n'est pas l'ideal..

Commentaire de tucobouch le 03/09/2006 22:38:17

Bonjour,

heu... c'est pas moi qui avait des problemes avec le copier coller  (avec les numeros) lol. c'est JMECODOL lol mais c'est du detail ;)

Commentaire de jmecodol le 04/09/2006 00:58:00

J'était en train de faire la marmotte,

mais c'est raté pour cette fois-ci je crois .

>^.^<

Commentaire de imadtahi le 28/11/2006 23:34:18

Bravo, je vous félicite ;) trés bon programme.
Merci

Commentaire de opla13 le 04/02/2007 21:35:45

salut ,
on m'a demandé un mini projet mais j'ai pas trouvée je compte sur vous de m'aider voila je suis un etudiant en 2éme année informatique
quelque soit  le sujet php,cpp,java,javascript ,reseau ...
svp aider moi
opla13@yahoo.fr

Commentaire de Twinuts le 04/02/2007 21:52:17 administrateur CS

Salut,

il y a un forum pour ça.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

BuferedImage et images [ par AlphaSurfeur ] Bonjour à tous,Voila, je voudrais deposer une image dans une BufferedImage de façon à pouvoir la modifier pixel par pixel. Le probleme c'est que je n' Robot dynamique en JAVA [ par SuperSteph ] Je suis en 2éme année d'ecole d'info, en projet en train de faire en java un simulateur de robots points et robots omnidirectionnels. J'ai un probléme Rafraichissement graphique d'un robot en simulation [ par SuperSteph ] On est en train de faire un projet qui simule un robot dynamiquement.On a reussi à faire evoluer le robot par contre on a une "trainéé". On aimerait v URGENT (BMP et BufferedImage) [ par Geomaster ] Bonjour,J'ai réalisé un petit prog qui prend n'importe quelle image GIF ou JPEG et cree un fichier texte contenant les valeurs R, V et B de chaque pix Pb de chargement de jpg sur une BufferedImage [ par shivan ] Alors je vous explique vite fait, j'ai une classe devant gérer des images en leur rajoutant du texte et des fichiers jpg a volonté. le constructeur ch pb graphique... [ par alexbristol ] bonjour,je veux créer une grille dans laquelle il y aura un point de départ et un point d'arrivée. Ensuite un petit robot va parcourir la grille pour BufferedImage.. toujours elles [ par warpis ] hum, en gros, j'ai tappé un truc (ci dessous). j'ai une classe marsouin contenant une image.. j'attends bien que l'image se charge avec un média track Image en GIF sans enregistrer [ par balbinus ] Je voudrais faire un serveur qui génère une image aléatoire... J'ai donc, pour l'instant, une BufferedImage. Comment je peux faire pour l'envoyer sous applet pour recuperer le contenu du presse papier et enregistrer en jpg [ par fmazoue ] bonjour a tous voilà mon pb :je voudrais créer un applet permettant de récupérer le contenu du presse papier puis d'enregistrer ce contenu dans un jpe coment faire pour redimentionner une BufferedImage [ par harryharry ] lscorpiocoment faire pour redimentionner une BufferedImage?


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,577 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales