A voir également:
- Java zoom
- Waptrick java football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Telecharger zoom - Télécharger - Téléphonie & Visio
- Jeux java itel football - Télécharger - Jeux vidéo
- Jeux java itel 5360 ✓ - Forum Mobile
7 réponses
Utilisateur anonyme
3 mai 2007 à 16:55
3 mai 2007 à 16:55
Salut!
Voici une piste (à affiner) pour le zoom:
;-)
HackTrack
Voici une piste (à affiner) pour le zoom:
import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPanel; /** * Created on 03-mai-07 * * @author:HackTrack */ public class ZoomPanel extends JPanel implements MouseWheelListener { private BufferedImage sourceImage; private int sourceImageWidth; private int sourceImageHeight; private Image scaledImage; private double zoom = 1d; public ZoomPanel() { super(); initializePanel(); } private void initializePanel() { setPreferredSize(new Dimension(640, 480)); try { sourceImage = ImageIO.read(new File("F:/testBG.jpg")); sourceImageWidth = sourceImage.getWidth(); sourceImageHeight=sourceImage.getHeight(); addMouseWheelListener(this); } catch (IOException e) { e.printStackTrace(); } } public void paint(Graphics g){ int width = (int)(sourceImageWidth*zoom); int height = (int)(sourceImageHeight*zoom); Image img = sourceImage.getScaledInstance(width, height, Image.SCALE_SMOOTH); g.drawImage(img,0,0,null); } public void mouseWheelMoved(MouseWheelEvent e) { int wheelRotation =e.getWheelRotation(); if(zoom>1){ zoom+=wheelRotation; }else if(zoom==1){ zoom=(wheelRotation==1?zoom+wheelRotation:0.5); }else if(zoom<1){ zoom/=(wheelRotation*2); } repaint(); } public static void main(String[] args) { JFrame demo = new JFrame(); demo.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); demo.add(new ZoomPanel()); demo.pack(); demo.setVisible(true); } }
;-)
HackTrack
Il est pas mal cet exemple !
Par contre, il faudrait s'occuper des coordonnées de l'image après le zoom, pour zoomer sur la partie centrale de l'image.
Par contre, il faudrait s'occuper des coordonnées de l'image après le zoom, pour zoomer sur la partie centrale de l'image.
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
2 mai 2007 à 12:23
2 mai 2007 à 12:23
Pour ce qui est des classes de modifs... aucune idée.
Pour ce qui est de la barre de défilement, donc une scrollbar, il te suffit de mettre ton image dans un JScrollPane et de fixer la taille de ce JScrollPane.
Ainsi, quand tu zoom, ton image grandie (plutot que de faire toujours la même taille).
De la même facon (cela peut etre une idée), sur ta carte, tu peux mettre en place une hiérarchie des éléments de manière a n'afficher que certains lorsque le zomm atteind un certains seuil, un peu comme tous les systemes de map actuels.
Par exemple, les villes seraient au niveau 3, les villages au niveau 4, etc...
Enfin c'est une piste que je propose, je ne suis pas spécialiste en la matière malheureusement pour toi ^^
Bon courage pour la suite en tout cas !
Pour ce qui est de la barre de défilement, donc une scrollbar, il te suffit de mettre ton image dans un JScrollPane et de fixer la taille de ce JScrollPane.
Ainsi, quand tu zoom, ton image grandie (plutot que de faire toujours la même taille).
De la même facon (cela peut etre une idée), sur ta carte, tu peux mettre en place une hiérarchie des éléments de manière a n'afficher que certains lorsque le zomm atteind un certains seuil, un peu comme tous les systemes de map actuels.
Par exemple, les villes seraient au niveau 3, les villages au niveau 4, etc...
Enfin c'est une piste que je propose, je ne suis pas spécialiste en la matière malheureusement pour toi ^^
Bon courage pour la suite en tout cas !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
En te remerciant, ca va déja bien m'aider :).
Par contre pour le zoom ce serais plus un zoom en "temps direct" . Le zoom ici ne permettra pas d'entrer dans les détails mais de voir plus précisément un point par rapport à un autre. (certains lieu géographiques se superposent presque en zoom 100% mais sont différents a 150% ...).
Merci beaucoup kij
PS : 82 powa :)
Par contre pour le zoom ce serais plus un zoom en "temps direct" . Le zoom ici ne permettra pas d'entrer dans les détails mais de voir plus précisément un point par rapport à un autre. (certains lieu géographiques se superposent presque en zoom 100% mais sont différents a 150% ...).
Merci beaucoup kij
PS : 82 powa :)
Voila du nouveau,
Pour les coordonnées je vais faire du "bricolage".
Faire une addition avec l'origine existante et celle que je veu.
Et donc pour la nouvelle échelle trouver un coefficiant multipliant celles données pour trouver celles souhaitées.
Mais il me reste encore le problème de zoom.
Si un de vos a des idées?
En vous remerciant.
Pour les coordonnées je vais faire du "bricolage".
Faire une addition avec l'origine existante et celle que je veu.
Et donc pour la nouvelle échelle trouver un coefficiant multipliant celles données pour trouver celles souhaitées.
Mais il me reste encore le problème de zoom.
Si un de vos a des idées?
En vous remerciant.
kij_82
Messages postés
4088
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
30 septembre 2013
857
3 mai 2007 à 16:31
3 mai 2007 à 16:31
Re :)
Pour l'histoire du zoom, je ne suis pas sur que tu puisse vraiment zoomer correctement de cette facon.
Si c'est un genre de google map que tu veux faire, je pense que le systeme mis en place est plus basés sur des niveaux hiérarchiques d'informations plutot que sur un zoom plus précis d'une seule et même image.
Enfin, si c'est ce que tu souhaite faire, tu peux toujours regarder ce tutos sur les opération sur images :
https://java.developpez.com/faq/gui?page=Les-images
Pour l'histoire du zoom, je ne suis pas sur que tu puisse vraiment zoomer correctement de cette facon.
Si c'est un genre de google map que tu veux faire, je pense que le systeme mis en place est plus basés sur des niveaux hiérarchiques d'informations plutot que sur un zoom plus précis d'une seule et même image.
Enfin, si c'est ce que tu souhaite faire, tu peux toujours regarder ce tutos sur les opération sur images :
https://java.developpez.com/faq/gui?page=Les-images