Bonjour,
J'ai une image dans laquel je selectionne une zone, je veux que quand on selectionne cette zone elle s'enregistre pour pouvoir la traiter apres sinon soit elle reste selectionner et se considere comme l'image de traitement ou elle s'affiche dans une autre fenetre tte seul mais j'arrive pas à le faire voila mon code je suis preneuse de n'importe quel aide merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import java.awt.AlphaComposite; 
import java.awt.Color; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.Point; 
import java.awt.Rectangle; 
import java.awt.event.MouseEvent; 
import java.awt.event.MouseListener; 
import java.awt.event.MouseMotionListener; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
 
import javax.imageio.ImageIO; 
import javax.swing.JComponent; 
import javax.swing.JFrame; 
 
public class testimage extends JComponent implements MouseListener, 
        MouseMotionListener { 
 
    private static final long    serialVersionUID    = 7774248752982522933L; 
    private BufferedImage        image                = null; 
    private Point                porig                = null; 
    private Point                pmove                = null; 
 
    public static void main(String args[]) { 
        final JFrame f = new JFrame("Selection Demo"); 
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        f.setSize(800, 600); 
        f.setLocationRelativeTo(null); 
        try { 
            f.setContentPane(new testimage(new File("d:/test.bmp"))); 
        } catch (final IOException e) { 
            e.printStackTrace(); 
        } 
        f.setVisible(true); 
    } 
 
    public testimage(final File image) throws IOException { 
        this.image = ImageIO.read(image); 
        porig = null; 
        pmove = null; 
        // ajout des listeners 
        addMouseListener(this); 
        addMouseMotionListener(this); 
    } 
 
    @Override 
    public void paintComponent(final Graphics g) { 
        super.paintComponent(g); 
        final Graphics2D g2 = (Graphics2D) g; 
        if (image != null) { 
            // dessine l'image en haut à gauche 
            // fleme de faire mieux 
            g2 
                    .drawImage(image, 0, 0, image.getWidth(), 
                            image.getHeight(), this); 
        } 
        if (pmove != null && porig != null) { 
            g2.setColor(Color.BLACK); 
 
            // calcul de la selection 
            final Rectangle rect = new Rectangle((pmove.x > porig.x) ? porig.x : pmove.x, 
                            (pmove.y > porig.y) ? porig.y : pmove.y, 
                            (pmove.x > porig.x) ? pmove.x - porig.x : porig.x 
                                    - pmove.x, (pmove.y > porig.y) ? pmove.y 
                                    - porig.y : porig.y - pmove.y); 
            // dessine le fond de la selection avec un effet de transparence 
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .2f)); 
            g2.fillRect(rect.x, rect.y, rect.width, rect.height); 
            // suppression de la transparence pour dessiner la bordure 
            g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1f)); 
            g2.drawRect(rect.x, rect.y, rect.width, rect.height); 
        } 
    } 
 
    public void mousePressed(final MouseEvent e) { 
        porig = e.getPoint(); // récupération du point d'origine 
        // repaint du composant 
        repaint(); 
    } 
 
    public void mouseReleased(final MouseEvent e) { 
        // cleanup de l'affichage, mais tu peux faire la découpe ici 
        pmove = null; 
        porig = null; 
        // repaint du composant 
        repaint(); 
    } 
 
    public void mouseDragged(final MouseEvent e) { 
        pmove = e.getPoint(); // récupération du point en déplacement 
        // repaint du composant 
        repaint(); 
    } 
 
    public void mouseClicked(final MouseEvent e) { } 
    public void mouseEntered(final MouseEvent e) { } 
    public void mouseExited(final MouseEvent e) { } 
    public void mouseMoved(final MouseEvent e) { } 
}